力扣 移动零
https://leetcode.cn/problems/move-zeroes/description/
思路
双指针法,定义两个指针 l r ,它们维护了一段元素都是0的区间nums[l:r]
nums[l] == 0 |
nums[l] != 0 |
|
---|---|---|
nums[r] == 0 |
r+=1 |
不存在 |
nums[r] != 0 |
swap;l+=1;r+=1 |
l+=1;r+=1 |
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
l = 0
for r in range(len(nums)):
if nums[r] != 0:
if nums[l] == 0:
nums[l], nums[r] = nums[r], nums[l]
l += 1