1.读懂题目
2. 分析,推导解法,产生思路。
解题思路:
(1)遍历,前后元素比较并删除重复元素。删除重复元素增加执行时间的消耗。
(2)双指针方法(常用到的解题方法)
3. 代码实现
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i = 0
while i < len(nums)-1 :
if nums[i] == nums[i+1]: #eg:[1,1,2]多余了1与2的比较
del nums[i]
else:
i += 1
return nums
def removeDuplicates1(self, nums):
# 双指针方法
i = 0 # i慢指针
for j in range(1,len(nums)):# j快指针,一次一步,遍历一遍
if nums[i] != nums[j] : # 若元素不同,则慢指针重复的元素已经结束
i += 1 # 元素数量+1
nums[i] = nums[j] # 用nums[i]记录下一个需要比较的元素nums[j]
return i+1