算法打卡日志-2020.11.19| LeetCode183
题目283. 移动零
这道题很简单,标签是数组。每次循环记录0的个数n,将非零数据移动到第一个0的位置,并将该位置的数据设为0。
官方题解的双指针跟这个思路是一样的,但是我是记录已经遍历过的0的个数,来推算第二个指针,同时没有使用交换的方式,而是直接将第一个指针的数据设为0。理论上来说运算量要小。
public void moveZeroes(int[] nums) {
int zeroCount=0;
for (int i = 0; i < nums.length; i++) {
if (nums[i]==0){
zeroCount++;
}else {
nums[i-zeroCount]=nums[i];
nums[i]=0;
}
}
}

浙公网安备 33010602011771号