目录

算法1.0-

目录

算法1.0

双指针

1.0 双指针的作用

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

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

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

https://i-blog.csdnimg.cn/direct/393e2f5c1b67484aabf090038b4a2bfd.png

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

下面是效果图和代码:

https://i-blog.csdnimg.cn/direct/d2bd3b277eb5411480a2d8e94dc65b32.png

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