https://leetcode.com/problems/move-zeroes/

把0移到後面,保持非0順序

Example 1:

Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]

Example 2:

Input: nums = [0]
Output: [0]

October 1, 2024

兩個 pointer 一個設定為 0 的位置,一個用 loop 走

如果 loop 那個不是 0,就跟 0 那個交換,然後 0 那個++

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

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        l = 0
        for r in range(len(nums)):
            if nums[l] == 0 and nums[r] != 0:
                nums[l], nums[r] = nums[r], nums[l]
            if nums[l] != 0:
                l += 1

初始化 i, j = 0

while j ≤ len(array) -1