程序员

力扣 283 移动零

2020-08-17  本文已影响0人  zhaojinhui

题意:给定一个数组,把其中的0都移动到最后

思路:设一个end指针记录第一个为0的index

  1. 遍历数组,把非0的数字按遍历到的顺序添加到end指针,并增加end
  2. 遍历数组,从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;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读