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