一.Leetcode题库第283题题目
二.题目解法思路
这题和之前的26. 删除有序数组中的重复项 和27. 移除元素两题一样使用双指针解法可以相对便捷的解决问题。慢指针更新新数组(0全部在末尾),快指针遍历数组元素,寻找非零元素
三.双指针代码
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
slow,fast=0,0
while fast<=len(nums)-1:
if nums[fast] !=0:
nums[slow]=nums[fast]
slow+=1
fast+=1
for i in range(slow,fast):
nums[i]=0
四.代码解析
- 首先是很常规的双指针解题模板,得到包含所有非零元素的新数组
- 其次剩余部分全部变为零