在Python中从排序数组中删除重复项
假设我们有一个排序列表A。我们必须在删除所有重复条目后返回数组的长度。我们必须在O(1)的额外空间中执行此操作。因此,我们必须就地进行操作。
例如,假设A=[1、2、2、2、2、3、3、3、3、4、5、5、5、5、6]然后输出将是6,因为有六个不同的元素。
为了解决这个问题,请遵循以下步骤-
如果列表为空,则返回0
否则,首先获取prev=A的第一个元素。并定义length=0
对于i:=1到n-1,做
长度:=长度+1
上一个:=A[i]
如果A[i]与上一个不同,则
返回长度
让我们看一下实现以获得更好的理解
范例(Python)
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0:
return 0
length = 1
previous = nums[0]
index = 1
for i in range(1,len(nums)):
if nums[i] != previous:
length += 1
previous = nums[i]
nums[index] = nums[i]
index+=1
return length
input_list = [1,1,2,2,2,3,3,3,3,4,5,5,5,6]
ob1 = Solution()print(ob1.removeDuplicates(input_list))输入值
[1,1,2,2,2,3,3,3,3,4,5,5,5,6]
输出结果
6