专栏首页码匠的流水账leetcode之移动零
原创

leetcode之移动零

本文主要记录一下leetcode之移动零

题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:

必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/move-zeroes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

class Solution {
    public void moveZeroes(int[] nums) {
        if (nums == null || nums.length <= 1) {
            return;
        }
        int idx = 0;
        for(int i=0; i<nums.length; i++) {
            if (nums[i] != 0) {
                nums[idx] = nums[i];
                idx++;
            }
        }
        for (int i = idx; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
}

小结

这里遍历数组,维护一个下标,当值不为0时则进行移动同时递增下标,遍历完一次之后,在从该下标起往后遍历,赋值为0。

doc

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • leetcode之移动零

    这里遍历数组,维护一个下标,当值不为0时则进行移动同时递增下标,遍历完一次之后,在从该下标起往后遍历,赋值为0。

    codecraft
  • leetcode之有多少小于当前数字的数字

    这里先用countArr来统计每个nums元素的个数,之后对countAgg用前面的元素值进行累加,最后遍历nums来计算小于当前数字的个数,这里会在利用cou...

    codecraft
  • leetcode之有多少小于当前数字的数字

    这里先用countArr来统计每个nums元素的个数,之后对countAgg用前面的元素值进行累加,最后遍历nums来计算小于当前数字的个数,这里会在利用cou...

    codecraft
  • Array - 80. Remove Duplicates from Sorted Array II

    80、Remove Duplicates from Sorted Array II 相似题型: 26

    用户5705150
  • leetcode之移动零

    这里遍历数组,维护一个下标,当值不为0时则进行移动同时递增下标,遍历完一次之后,在从该下标起往后遍历,赋值为0。

    codecraft
  • 【LeetCode】41. 缺失的第一个正数

    因为有负数的存在一开始 所以把相应的位置 设置成正数即可 正数要超过 n 避免和 普通数混淆 可以使用n+1

    韩旭051
  • [leetcode数组系列]2三数之和

    在思考两数之和解决方法的时候,我们使用了两层循环把所有的结果给求出来,相信读者很快就想到三数之和我就用三个循环,很棒,思路是一样,只是之前的a+b=0,现在的b...

    我是程序员小贱
  • LeetCode刷题DAY 10:三数之和

    给定一个整数数组nums,判断nums中是否存在三个元素 a,b,c ,使得 a + b + c = 0 。如不存在返回[],如存在返回所有满足条件且不重复的答...

    三猫
  • 漫画:常考的荷兰国旗问题你还不会吗?(初级)

    "荷兰国旗问题" 是计算机科学中的一个经典题目,它是由Edsger Dijkstra提出的。荷兰国旗由红、白、蓝三色组成。

    程序员小浩
  • 打卡群刷题总结0624——四数之和

    1、先将数组排序,接着使用暴力破解,最后两层循环可以使用two sum的方式求和。

    木又AI帮

扫码关注云+社区

领取腾讯云代金券