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  阅读(315)  评论(0)    收藏  举报