学习目标:
LetCode - 移动零学习内容:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例1
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
解法一:
思路:将非0的元素往前挪动,尾部添加为0的元素
def moveZeroes(self, nums: List[int]) -> None:
index = 0
for item in nums:
if item != 0:
nums[index] = item
index+=1
while index < len(nums):
nums[index] = 0
index+=1
return nums
解法二:双指针法
def moveZeroes(self, nums: List[int]) -> None:
p =0
q = 0
while p < len(nums):
if nums[p] != 0:
nums[p],nums[q] = nums[q],nums[p]
q+=1
p+=1
return nums