题目简介:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。
方法/步骤
1、示例1:给定数组nums=[1,1,2],函数应该返回新的长度2,并且原数组nums的前两个元素被修改为1,2。你不需要考虑数组中超出新长度后面的元素。
2、示例2:给定nums=[0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度5,并且原数组nums的前五个元素被修改为0,1,2,3,4。你不需要考虑数组中超出新长度后面的元素。
3、解题思路:把数组分为两部分,一部分是起始位置到遍历位置部分的数据,另一部分是从遍历位置到末尾的数据,如果当前遍历元素在第二部分,就表示该元素在列表中有多个重复的。删除该元素,直到第二部分不存在该元素为止,然后遍历下一个元素。
4、代码:classSolution:defremoveDuplic瞢铍库祢ates(self,num霜杼厮贿s):i=0whilei<len(nums):whilenums[i]innums[i+1:]:nums.remove(nums[i])else:i+=1returnlen(nums)