题意:给定一个数组,把其中的0都移动到最后
思路:设一个end指针记录第一个为0的index
- 遍历数组,把非0的数字按遍历到的顺序添加到end指针,并增加end
- 遍历数组,从end开始到数组末尾设为0
思想:快慢指针
复杂度:时间O(n),空间O(1)
class Solution {
public void moveZeroes(int[] nums) {
int end = 0;
for(int i=0;i<nums.length;i++) {
if(nums[i] != 0) {
nums[end++] = nums[i];
}
}
for(int i=end;i<nums.length;i++){
nums[i] = 0;
}
}
}
网友评论