从排好序的列表中删除重复数。这个有Counter之后就可以反过来先算出来哪些重复,该删多少个,然后删就是了。代码如下:
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
from collections import Counter
a = Counter(nums)
for i in a.keys():
if a[i] > 1:
for j in range(a[i] - 1):
nums.remove(i)
return len(nums)
好点的方法就是跟分类讲的那种了。
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if nums == []:
return 0
if len(nums) == 1:
return 1
prev = nums[0]
p = 1
for i in range(len(nums) - 1):
if prev == nums[i + 1]:
continue
nums[p] = nums[i + 1]
p = p + 1
prev = nums[i + 1]
return p