1、移动零
class Solution {
public void moveZeroes(int[] nums) {
int left=0;
int right=0;
for(right=0;right<nums.length;right++){
if(nums[right]!=0){
if(nums[left]==0){
int temp=nums[left];
nums[left]=nums[right];
nums[right]=temp;
}
left++;
}
}
}
}
两个指针将一个数组划分三个部分:
[0,left-1] 为已处理部分,按照题目意思就是非零部分
[left,right-1]也是已处理部分,按照题目意思就是全零部分
[right,nums.length-1]未处理部分,如果nums[right]==0则不用处理。如果nums[right]!=0则与第一个0交换位置
2、复写零