Move Zeroes
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
n = len(nums)
cur = 0
for i in xrange(n):
while cur < n and nums[cur] == 0:
cur += 1
if cur < n:
nums[cur], nums[i] = nums[i], nums[cur]
cur = max(cur, i + 1)
continue
break
这种剔除掉一个重复值的算法一般都是用快慢指针的,只是要处理好慢指针的边界问题
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
i = 0
for index, num in enumerate(nums):
if num != 0:
nums[index], nums[i] = nums[i], nums[index]
i += 1