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

results matching ""

    No results matching ""