首页 > 其他分享 >2024-03-08 leetcode写题记录

2024-03-08 leetcode写题记录

时间:2024-03-08 18:00:48浏览次数:27  
标签:03 return 题意 nums int res 08 2024 移除

目录

2024-03-08 leetcode写题记录

27. 移除元素

题目链接

27. 移除元素

题意

给你一个数组\(nums\)和一个值\(val\),你需要原地移除所有数值等于\(val\)的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用\(O(1)\)额外空间并原地修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素

解法

遍历一遍,把不等于\(val\)的值都\(swap\)到前面即可。

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int n = nums.size(), idx = 0;
        for (int i = 0; i < n; ++i) {
            if (nums[i] == val)
                continue;
            swap(nums[idx], nums[i]);
            idx++;
        }
        return idx;
    }
};

179. 最大数

题目链接

170. 最大数

题意

给定一组非负整数\(nums\),重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

解法

用贪心的想法想一下,两个数的比较其实就是在比哪个数在前时能让整个数变得更大。

注意,\(f()\)会爆\(int\)。

class Solution {
   public:
    int f(int x) {
        long long res = 10;
        while(x >= res) res *= 10;
        return res;
    }

    string largestNumber(vector<int>& nums) {
        sort(nums.begin(), nums.end(), [&](int& x, int& y) {
            int xx = f(x), yy = f(y);
            return 1ll * x * yy + y > 1ll * y * xx + x;
        });
        if (nums[0] == 0) return "0";
        string res = "";
        for (int x : nums)
            res += to_string(x);
        return res;
    }
};

75. 颜色分类

题目链接

  1. 颜色分类

题意

给定一个包含红色、白色和蓝色、共\(n\)个元素的数组\(nums\),原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

我们使用整数\(0、1\)和\(2\)分别表示红色、白色和蓝色。

必须在不使用库内置的\(sort\)函数的情况下解决这个问题。

解法

遍历一遍,是\(0\)就扔左边,是\(2\)就扔右边,处理好边界就行了。

class Solution {
public:
    void sortColors(vector<int>& nums) {
        int n = nums.size(), l = 0, r = n - 1;
        for (int i = l; i <= r; ++i) {
            if (nums[i] == 0) 
                swap(nums[l++], nums[i--]);
            else if (nums[i] == 2) 
                swap(nums[r--], nums[i--]);
            if (i < l - 1) i = l - 1;
        }
    }
};

标签:03,return,题意,nums,int,res,08,2024,移除
From: https://www.cnblogs.com/FlyingLight/p/18060895

相关文章

  • 联合省选 2024
    D1T1考虑什么样的\(m\)是合法的,发现只需要\(|X-\sum_{i=0}^{m-1}x_i|+|Y-\sum_{i=0}^{m-1}y_i|\lemk\)。这里认为\(x,y\)以\(n\)为周期无限循环。把绝对值拆开,可以得到四个式子:\[\begin{cases}X+Y-\sum_{i=0}^{m-1}(x_i+y_i+k)\le0\\X-Y-\sum_{i=0}^{m-1}(x_i-y_......
  • 2024哈佛-麻省数学竞赛(HMMT)2月锦标赛 团体赛第9题
    [55](题目分数)在一个200*200的网格表的每个单元格上放置一辆汽车,它面向四个基本方向之一。在一步操作中,选择一辆前面没有汽车立即挡住的汽车,并将其向前滑动一个单元格。如果一步操作会导致汽车离开网格,则将该汽车移除。对初始放置方法的要求是,一定存在一系列操作,最终可以将所有汽......
  • 2024.03.08
       第四天所花时间(包括上课)2h代码量(行)130行博客量(篇)2篇了解到的知识点无多少新的知识点,主要是对前三天的内容进行复习,并且进行编写。            protectedvoidonCreate(BundlesavedInstanceState){super.onC......
  • 【2024-03-05】分析矛盾
    20:00黄师塔前江水东,春光懒困倚微风。桃花一簇开无主,可爱深红爱浅红?                                                 ——《江畔独步寻花·其五》唐·杜甫今天下午约......
  • CVPR2024 | Point Transformer V3: 更简单、更快、更强!
    前言 本文没有动机在注意力机制内寻求创新。相反,它专注于在点云处理的背景下克服现有的准确性和效率之间的权衡,利用scale的力量。从3D大规模表示学习的最新进展中汲取灵感,我们认识到模型性能更多地受到规模的影响,而不是复杂设计的影响。因此,本文提出了PointTransformerV3(PTv3),它......
  • 【2024-03-04】幸福法宝
    20:00人,充满劳绩,但仍诗意地栖居。                                                 ——荷尔德林由于小区的名校要被搬迁合并的原因,我跟何太都被拉进了“组织群”,试图......
  • 03浮动
    1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>Document......
  • 2024-3-8 vite代码快捷键
    1.点击“设置”,选择“用户代码片段”2.输入vue,回车,要选择vue.json文件:3.在文件中写以下内容:其中,“vt”是可以自己设置的快捷方式,在文件中写入下面内容4.在新建的vue文件中输入“vt”,点击回车:5.得到我们要的代码块:......
  • 洛谷题单指南-搜索-P1032 [NOIP2002 提高组] 字串变换
    原题链接:https://www.luogu.com.cn/problem/P1032题意解读:要计算子串变换的最少步数,典型的最短路问题,可以通过BFS求解。解题思路:思路上比较直观,从给定的字符串开始,找有多少种替换可能,依次进行替换,存入队列,继续BFS,过程中记录替换的次数但是,有一些细节还需要注意:1、有多种替换......
  • SqlServer:FOR XML PATH('')
    业务需求:需要将一个流程的所有节点办理人,接收时间,以每一条requestid为主,横向的排列起来展示。而OAe9里面,workflow_currentoperator表就是存节点接收人,接收时间的。 它的结构如下:一个requestid下面有很多节点数据,每个节点也可能重复,因为有办理人,抄送人。在结构上,我们需要将......