解题思路
几乎所有的题解都是快慢指针的做法,但看到题目我的第一思路就是:若当第i项和第i+1项相等,则remove第i+1项。但一直报错,,,才发现用for循环无法改变l的值,于是有了下面的while代码,思路见注释。力扣也写了题解:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/wu-fa-gai-bian-lforgai-while-by-awang-qi-i6vt/
代码
class Solution(object):
def removeDuplicates(self,nums):
"""
:type nums: List[int]
:rtype: int
"""
l = len(nums)
i=0
while i<l-1: # 因为是和第i+1项比较,所以i<l-1
if (nums[i]==nums[i+1]):
nums.remove(nums[i+1])
i=i-1 # 删掉第i+1项,仍要和新的第i+1项进行比较
l = l-1 # 删掉一个元素后l=l-1
i=i+1 #i递增
return l