编程语言
首页 > 编程语言> > leetcode-283 移动零 [Java]

leetcode-283 移动零 [Java]

作者:互联网

题目:

 思想:

先统计0的个数,再使用“双指针”,从第一个出现的零开始,把后面非零数移动过来,最后在末尾补全零。

代码:

class Solution {
    public void moveZeroes(int[] nums) {
        int i;
        int j=nums.length-1;
        int flag=0;

        for(i=0;i<nums.length;i++){
            if(nums[i]==0 &&flag==0){
                j=i;//记录第一次出现0的数组下标
                flag=1;
            }
        }

        //这里是一个移动操作,同时也规避了数组中未出现零但会多移动0的情况,如[1]
        for(i=j;i<nums.length;i++){
            if(nums[i]!=0){
                nums[j]=nums[i];
                j++;
            }
        }

        //后续补零
        for(;j<nums.length;j++){
            nums[j]=0;
        }
    }
}

结果:

 

标签:Java,补全,nums,int,零数,283,移动,leetcode
来源: https://blog.csdn.net/weixin_52373240/article/details/120089140