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.

解题思路

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        d = {}
        l = len(nums)
        if l < 2:
            return l
        i = 0
        while True:
            if i >= l:
                break
            if nums[i] not in d:
                d[nums[i]] = 1
            else:
                d[nums[i]] += 1
            if d[nums[i]] > 2:
                nums.remove(nums[i])
                l -= 1
                continue
            i += 1
            
        return l
posted @ 2015-08-25 18:37  mrbean  阅读(291)  评论(0编辑  收藏  举报