移动零
https://leetcode-cn.com/problems/move-zeroes/ (opens new window) 需要注意的点
- python 没有自加,https://www.runoob.com/note/24457 (opens new window), https://www.runoob.com/python/python-func-id.html (opens new window)
- 该题用到了快慢指针
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
index = self.removeElement(nums, 0)
# 将数组index后面的元素赋0
while index < len(nums):
nums[index] = 0
index += 1
return nums
def removeElement(self, nums, val):
"""
快慢指针, 快指针总是在增加,
慢指针只有在符合条件的时候才增加
"""
fast = 0
slow = 0
while fast < len(nums):
# slow 符合条件才增加,该题条件是 当fast != val
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
# fast 总是增加
fast += 1
return slow
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
# index = self.removeElement(nums, 0)
fast = 0
slow = 0
while fast < len(nums):
# slow 符合条件才增加,该题条件是 当fast != val
if nums[fast] != 0:
nums[slow] = nums[fast]
slow += 1
# fast 总是增加
fast += 1
while slow < len(nums):
nums[slow] = 0
slow += 1
return nums
def removeElement(self, nums, val):
"""
快慢指针, 快指针总是在增加,
慢指针只有在符合条件的时候才增加
"""
pass