目录

算法双指针一移动零

【算法】双指针(一)移动零

https://i-blog.csdnimg.cn/direct/4bb4f0158cf44e08a820eb72ddc23777.gif


一、题目介绍

https://i-blog.csdnimg.cn/direct/0cce954a493242b588491c44b4afc9bd.png


二、双指针原理

扩容遍历指针当前维护指针 从小维护到大

当前维护指针-维护方向

(1)条件边界

根据条件 判搬新值 维护一个条件边界


三、提交代码

public void moveZeroes(int[] nums) {
    int cur = 0;
    int dest = -1;
    while(cur < nums.length) {
        if(nums[cur] != 0) {
            int tmp;
            tmp = nums[++dest];//除最开始时外,就是0的
            nums[dest] = nums[cur];
            nums[cur] = tmp;
        }
        cur++;
    }
}

https://i-blog.csdnimg.cn/direct/75e58d41ca614777b160e9bc5b221931.png