1.题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
注:不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
2.程序
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
i=0
j=len(nums)
while i<j-1:
if nums[i]==nums[i+1]:
nums.pop(i+1)
j=len(nums)
else:
i+=1
return j
我用了一种简单的方法,主要利用列表方法pop(),将相同元素移除,循环次数和更新后的列表长度相同。在循环中添加j=len(nums),将列表长度进行更新,否则,列表长度保持不变。
执行效果: