283. 移动零(快慢指针)
算法分析:
- 如果数组没有0,快慢指针同步移动,元素会被自己复制;
- 如果有0,快指针找到非零元素,将其复制到慢指针位置
- 最终将剩余位置填充为0。
代码:
class Solution {
public void moveZeroes(int[] nums) {
int len = nums.length;
int slow = 0;
int fast = 0;
while(fast < len){
if(nums[fast] != 0){
nums[slow++] = nums[fast];
}
fast++;
}
while(slow < len){
nums[slow++] = 0;
}
}
}