539. 移动零
---
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
样例
例1:
输入: nums = [0, 1, 0, 3, 12],
输出: [1, 3, 12, 0, 0].
例2:
输入: nums = [0, 0, 0, 3, 1],
输出: [3, 1, 0, 0, 0].
注意事项
1.必须在原数组上操作
2.最小化操作数
public class Solution {
/**
* @param nums: an integer array
* @return: nothing
*/
public void moveZeroes(int[] nums) {
// write your code here
if(nums.length<=1){
return;
}
int i=0;
for ( int ret =0;ret< nums.length; ret++){
if (nums[i]==0){
while(nums[ret]==0){
ret++;
if(ret>=nums.length)return;
}
nums[i]=nums[ret];
nums[ret]=0;
i++;
} else{
i++;
}
}
}
}