283. Move Zeroes

Two Pointer双指针遍历,不停把j遍历到的非零项填进i位置,遇到0就跳过,最后在尾巴上补填0。在 candy crush 那题里也用过一样的技巧。

723. Candy Crush

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        i, j = 0, 0
        while j < len(nums):
            if nums[j] != 0:
                nums[i] = nums[j]
                i += 1
            j += 1
        while i < len(nums):
            nums[i] = 0
            i += 1
        
        return nums

Last updated

Was this helpful?