给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
同向双指针
当left等于0时 right向后遍历找到不是0的数与left交换
public class Solution {
/**
* @param nums: an integer array
* @return: nothing
*/
public void moveZeroes(int[] nums) {
int left = 0, right = 0;
while(left < nums.length && right < nums.length){
if(nums[left] == 0){
while(right < nums.length - 1 && nums[right] == 0){
right++;
}
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right++;
}
else{
left++;
right++;
}
}
}
}