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;
    }
};
相关文章
|
3月前
leetcode-472. 连接词
leetcode-472. 连接词
23 0
|
3月前
|
C++ Python
leetcode-283:移动零
leetcode-283:移动零
19 0
|
3月前
|
消息中间件 Kubernetes NoSQL
LeetCode 3、28、1351
LeetCode 3、28、1351
|
10月前
单链表反转 LeetCode 206
单链表反转 LeetCode 206
53 0
leetcode第34题
从左向右遍历,一旦出现等于 target 的值就结束,保存当前下标。如果从左到右没有找到 target,那么就直接返回 [ -1 , -1 ] 就可以了,因为从左到右没找到,那么从右到左也一定不会找到的。如果找到了,然后再从右到左遍历,一旦出现等于 target 的值就结束,保存当前下标。 时间复杂度是 O(n)并不满足题意,但可以了解下这个思路,从左到右,从右到左之前也遇到过。
leetcode第34题
|
算法
leetcode第40题
会发现出现了很多重复的结果,就是因为没有跳过重复的 1。在求 opt [ 1 ] 的时候就变成了 [ [ 1 ],[ 1 ] ] 这样子,由于后边求的时候都是直接在原来每一个列表里加数字,所有后边都是加了两次了。
leetcode第40题
leetcode第38题
难在了题目是什么意思呢? 初始值第一行是 1。 第二行读第一行,1 个 1,去掉个字,所以第二行就是 11。 第三行读第二行,2 个 1,去掉个字,所以第三行就是 21。 第四行读第三行,1 个 2,1 个 1,去掉所有个字,所以第四行就是 1211。 第五行读第四行,1 个 1,1 个 2,2 个 1,去掉所有个字,所以第五航就是 111221。 第六行读第五行,3 个 1,2 个 2,1 个 1,去掉所以个字,所以第六行就是 312
leetcode第38题
|
存储
leetcode第56题
常规的思想,将大问题化解成小问题去解决。 假设给了一个大小为 n 的列表,然后我们假设 n - 1 个元素的列表已经完成了全部合并,我们现在要解决的就是剩下的 1 个,怎么加到已经合并完的 n -1 个元素中。 这样的话分下边几种情况, 我们把每个范围叫做一个节点,节点包括左端点和右端点。 1. 如下图,新加入的节点左端点和右端点,分别在两个节点之间。这样,我们只要删除
leetcode第56题
leetcode第39题
对回溯法又有了更深的了解,一般的架构就是一个大的 for 循环,然后先 add,接着利用递归进行向前遍历,然后再 remove ,继续循环。而解法二的动态规划就是一定要找到递进的规则,开始的时候就想偏了,导致迟迟想不出来。
leetcode第39题
|
算法
leetcode第32题
这几种算法,暴力破解和动态规划我觉得想的话,还是能分析出来的话,最后两种算法感觉是去挖掘题的本质得到的算法,普适性不是很强。但最后一种算法,从左到右,从右到左,是真的强。
leetcode第32题

热门文章

最新文章