LeetCode-移动零(283)

题目描述:

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

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

思路: 这里的思路跟以前做过的去重复数字的思路有点像,快指针也就是for循环中的i遍历元素,慢指针也就是count指向存储元素得到位置,当然只有当遍历的数字不是0的时候才会存储该数字至count指向的位置,并且count+1。完成存储的for循环之后,就要把忽略掉的0给添加都末尾,这一步操作就简单了,具体看代码。
代码:

java 复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        int count=0;
        for(int i=0;i<nums.length;i++) {
            if(nums[i]!=0) {
                nums[count]=nums[i];
                count++;
            }
            
        }
        
        for(int i=count;i<nums.length;i++) {
            nums[i]=0;
        }
        
        
    }
}
相关推荐
啊哦呃咦唔鱼5 分钟前
LeetCode hot100-240搜索二维矩阵 II
算法
Q741_1476 分钟前
力扣高频面试题详解 数组 链表 力扣 56.合并区间 力扣 160.相交链表 C++ 每日练习
c++·算法·leetcode·链表·数组·哈希
2301_7938046914 分钟前
C++中的备忘录模式
开发语言·c++·算法
ab15151716 分钟前
3.23完成进阶45、84,二刷基础132、129
算法·深度优先·图论
CoovallyAIHub17 分钟前
编码智能体做 CV 任务,实际能力到哪一步了?——五项视觉任务实测解读
深度学习·算法·计算机视觉
2501_9454235419 分钟前
C++编译期多态实现
开发语言·c++·算法
2401_8796938719 分钟前
设计模式在C++中的实现
开发语言·c++·算法
☆56622 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
2301_8184190124 分钟前
编译器命令选项优化
开发语言·c++·算法
m0_5180194824 分钟前
C++图形编程(OpenGL)
开发语言·c++·算法