【双指针】LeetCode 283. 移动零

题目链接

283. 移动零

思路

设定两个指针 ij,使用 j 遍历数组,将非零元素送到 i 的位置后 i++。经过第一次循环后所有的非零数都被送到了数字前面,只需要将剩余的位置变为 0 即可。

代码

class Solution {
    public void moveZeroes(int[] nums) {
        int i = 0;
        int j = 0;

        while(j < nums.length){
            // 非0元素放在前面
            if(nums[j] != 0){
                nums[i] = nums[j];
                i++;
            }
            j++;
        }
        while(i < nums.length){
            nums[i] = 0;
            i++;
        }
    }
}
posted @ 2023-01-31 09:05  Frodo1124  阅读(32)  评论(0编辑  收藏  举报