题目:
方法一:
我首先是采用了一种正序删除重复元素的方法,但是这种方法需要注意的是索引数组元素的下标在删除某一个元素后是会发生改变的 。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if len(nums)==1 or len(nums)==0:
return len(nums)
long=len(nums)-1;target=nums[0];i=1
while i<=long:
if nums[i]==target:
del nums[i]
long-=1
else:
target=nums[i]
i+=1
return len(nums)
方法二:
若是采用逆序的方法来计算,就可以不用繁琐的考虑index的问题。
for i in range(len(nums)-1,0,-1):
if nums[i]==nums[i-1]:
del nums[i]
方法三:
采用双指针的方法来删除重复元素。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if len(nums)==1 or len(nums)==0:
return len(nums)
else:
i=0;j=1
while j<=len(nums)-1:
left=nums[i];right=nums[j]
if left==right:
j+=1
else:
nums[i]=right
i+=1
j+=1
return 1+i
#但是列表的元素顺序返回就不是正序而是倒序了的😂