一、移动零

1.双指针
我们可以设定两个指针i和j,其中i用来遍历整个数组,j用来遍历存放不为零的数的位置,当nums[i]不等于零时,就让nums[i]和nums[j]进行交换,然后j++,当我们遍历完整个数组之后就完成了操作,具体代码如下:
class Solution {
public void moveZeroes(int[] nums) {
int j = 0;
for(int i = 0; i < nums.length; i++) {
if(nums[i] != 0) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
j++;
}
}
}
}
复杂度分析
- 时间复杂度:O(n)。
- 空间复杂度:O(1)。
文章介绍了使用双指针方法解决移动数组中所有零值到数组末尾的问题,通过遍历和交换实现,时间复杂度为O(n),空间复杂度为O(1)。
711

被折叠的 条评论
为什么被折叠?



