算法1.0

283. 移动零 - 力扣(LeetCode)

双指针

1.0 双指针的作用

cur:从左到右遍历数组 dest:已处理的区间内,非零元素的最后一个位置

cur把数组划分为两部分 未扫描和已扫描 dest把处理过的数组划分为两个部分

cur和dest把整个数组划分为3个区间:

双指针是快排里面最核心的一步 其实就是数据划分这一步

下面是效果图和代码:

复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        for(int cur = 0, dest = -1;cur<nums.length;cur++){
            if(nums[cur] != 0){
                dest++;
                int tmp = nums[cur];
                nums[cur]=nums[dest];
                nums[dest]=tmp;
            }
        }        
    }
}
//xiyu250928#1*1
相关推荐
im_AMBER2 小时前
Leetcode 144 位1的个数 | 只出现一次的数字
学习·算法·leetcode
暮冬-  Gentle°2 小时前
C++中的工厂模式实战
开发语言·c++·算法
Lisssaa2 小时前
打卡第二十二天
c++·算法·图论
pu_taoc2 小时前
理解 lock_guard, unique_lock 与 shared_lock 的设计哲学与应用场景
开发语言·c++·算法
XW01059993 小时前
6-函数-1 使用函数求特殊a串数列和
数据结构·python·算法
myloveasuka3 小时前
红黑树、红黑规则、添加节点处理方案
开发语言·算法
沉鱼.443 小时前
枚举问题集
java·数据结构·算法
2301_810160953 小时前
C++中的访问者模式高级应用
开发语言·c++·算法
郝学胜-神的一滴3 小时前
走进计算机图形学的浪漫宇宙 | GAMES101 开篇课程全解析
c++·算法·图形渲染·计算机图形学
没头脑的男大3 小时前
灵神,2x树的层序遍历,102,103,513
算法