LeetCode:移动零【283】

 LeetCode:移动零【283】

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数。

题目分析

   黑色指针表示循环过程,即从头到尾。蓝色指针表示要填的第N个数

   黑色指针一直走,遇到非0的就将它填到N位置(初始为0,每次填写后递增)。然后如果黑色指针到达末尾,蓝色指针后面的都变更为0.

  

Java题解

public class Solution {
    public void moveZeroes(int[] nums) {
        int index=0;
        for(int i=0;i<nums.length;i++)
        {
            if(nums[i]!=0)
                nums[index++]=nums[i];
        }
        while(index<nums.length)
            nums[index++]=0;
    }
}

 

posted @ 2018-09-19 20:30  子烁爱学习  阅读(167)  评论(0)    收藏  举报