LC 速查

HOT 100索引 › B2 双指针 Two Pointers

LC 283移动零Move Zeroes 简单

原地把数组中所有 0 移到末尾,同时保持非零元素的相对顺序。

思路 快慢指针:慢指针 k 指向非零区下一个放置位置,遇到非零数就与当前位置交换。时间 O(n)。

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        k = 0  # 下一个非零数应放的位置
        for i, x in enumerate(nums):
            if x:
                nums[k], nums[i] = nums[i], nums[k]
                k += 1
← 上一题 最长连续序列盛最多水的容器 下一题 →