leetcode 283 移动零

简介: leetcode 283 移动零

移动零

队列法

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        queue<int> myqueue;
        for(int i=0 ; i<nums.size() ;i++)
            if(nums[i] != 0) myqueue.push(nums[i]);
        for(int i=0 ; i<nums.size() ;i++)
        {
             if(myqueue.size()!=0)
            {
                nums[i] = myqueue.front();
                myqueue.pop();
            }else nums[i] = 0;
        }     
    }
};

双指针

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left =0;
        for(int right = 0 ; right < nums.size() ;right++)
        {
            if(nums[right] != 0)
            {
                nums[left] = nums[right];
                left++;
            }
        }
        for(int i=left ; i<nums.size() ;i++)
            nums[i] = 0;
    }
};
目录
打赏
0
0
0
0
5
分享
相关文章
LeetCode第66题加一
LeetCode第66题"加一"的解题方法,通过遍历数组从后向前处理每一位的加法,并考虑进位情况,最终实现给定数字加一的功能。
LeetCode第66题加一
|
10月前
LeetCode
LeetCode
48 0
LeetCode 1904. 你完成的完整对局数
一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。这意味着,在 HH:00、HH:15、HH:30 和 HH:45 ,将会开始一个新的对局,其中 HH 用一个从 00 到 23 的整数表示。游戏中使用 24 小时制的时钟 ,所以一天中最早的时间是 00:00 ,最晚的时间是 23:59 。
112 0
LeetCode 386. Lexicographical Numbers
给定一个整数 n, 返回从 1 到 n 的字典顺序。
116 0
LeetCode 386. Lexicographical Numbers
leetcode第39题
对回溯法又有了更深的了解,一般的架构就是一个大的 for 循环,然后先 add,接着利用递归进行向前遍历,然后再 remove ,继续循环。而解法二的动态规划就是一定要找到递进的规则,开始的时候就想偏了,导致迟迟想不出来。
111 0
leetcode第39题
leetcode第36题
一个 9 * 9 的数独的棋盘。判断已经写入数字的棋盘是不是合法。需要满足下边三点, • 每一行的数字不能重复 • 每一列的数字不能重复 • 9 个 3 * 3 的小棋盘中的数字也不能重复。 只能是 1 - 9 中的数字,不需要考虑数独最后能不能填满
104 0
leetcode第36题
leetcode第56题
常规的思想,将大问题化解成小问题去解决。 假设给了一个大小为 n 的列表,然后我们假设 n - 1 个元素的列表已经完成了全部合并,我们现在要解决的就是剩下的 1 个,怎么加到已经合并完的 n -1 个元素中。 这样的话分下边几种情况, 我们把每个范围叫做一个节点,节点包括左端点和右端点。 1. 如下图,新加入的节点左端点和右端点,分别在两个节点之间。这样,我们只要删除
123 0
leetcode第56题
leetcode第44题
时间复杂度:text 长度是 T,pattern 长度是 P,那么就是 O(TP)。 空间复杂度:O(TP)。 同样的,和第10题一样,可以优化空间复杂度。
108 0
leetcode第44题
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等