/**
* 思路主要是通过一个专门指向左边都不是零的指针来保存接下来搜索到的非零元素应该放的位置
* 那么我们就可以循环遍历一遍数组
* 遇到不是零的就放在一开始维护的非零指针的位置,
* 接着,如果当前位置下标和非零指针的位置不是同一个,那么我们把这个非零元素原来的位置置零
* 再将非零指针向后移动,以此类推
* 直到最后循环完数组,此时就已经将所有非零元素都移动到最左边了.
* @param nums
*/
public void moveZeroes(int[] nums) {
int j = 0;
for(int i = 0;i<nums.length;i++){
if(nums[i] != 0 ){
nums[j] = nums[i];
if(i!=j){
nums[i] = 0;
}
j++;
}
}
}
移动零操作
最新推荐文章于 2023-03-08 20:16:21 发布