80. Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates": What if duplicates are allowed at most twice?

For example, Given sorted array nums = [1,1,1,2,2,3],

Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length.

Solution: Two Pointers

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        idx = 0
        pre = None
        repeat = 0
        for num in nums:
            if num != pre:
                nums[idx] = num
                repeat = 1
                pre = num
                idx += 1
            else:
                repeat += 1
                if repeat <= 2:
                    nums[idx] = num
                    idx += 1
        return idx

results matching ""

    No results matching ""