移动零

1.题目

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

示例:

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

2.分析

先遍历数组,再遍历的过程中,若该数为0则用count记录次数,若不为0,则将该数放在 i - count 位上并该位变为0,直到遍历完成。

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public void moveZeroes(int[] nums) {
int len = nums.length,count=0;
for (int i = 0; i < len; i++) {
if(nums[i]==0){
count++;
continue;
}else if(i==0||count==0){
continue;
} else{
nums[i-count]=nums[i];
nums[i]=0;
}
}
System.out.println(Arrays.toString(nums));
}
}