力扣链接:283. 移动零 - 力扣(LeetCode)

思路:利用双指针将数组分为三个区间,三个区间分别表示的是:非0元素、0、待处理元素


当arr[cur] != 0时
[0,dest]区间就需要加一,所以dest++
然后再交换arr[dest] ,arr[cur]

代码如下:
class Solution {
    public void moveZeroes(int[] nums) {
        for(int cur = 0, dest = -1; cur < nums.length; cur++){
            //非 0 就让dest++,再交换数值
            if(nums[cur] != 0){
                dest++;
                int tmp = nums[dest];
                nums[dest] = nums[cur];
                nums[cur] = tmp;
            }
        }
    }
}


















