描述:
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
解题思路:遍历数组,将所有非0的数依次放到数组的前面,遍历完成后,假设非0的元素的个数为i个,数组元素为n,再次遍历数组n-i次,将数组中剩余的其他位置置为0,这种思路也是比较简单可行的。代码如下:
public void moveZeroes(int[] nums){
int j=0;
for(int i=0;i<nums.length;i++){
if(nums[i] != 0){
nums[j]=nums[i];
j++;
}
}
for(int k=j;k<nums.length;k++){
nums[k]=0;
}
}