使用 Python 从已排序数组中删除重复项
pythonserver side programmingprogramming更新于 2025/10/31 17:16:17
假设我们有一个已排序列表 A。我们必须在删除所有重复项后返回数组的长度。我们必须在 O(1) 额外空间中执行此操作。因此我们必须就地执行该操作。
例如,假设 A = [1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6],则输出将为 6,因为有六个不同的元素。
要解决此问题,请按照以下步骤 −
- 如果列表为空,则返回 0
- 否则,最初取 prev = A 的第一个元素。并定义 length = 0
- 对于 i := 1 到 n-1,执行
- 如果 A[i] 与 prev 不同,则
- length := length + 1
- prev := A[i]
- 如果 A[i] 与 prev 不同,则
- 返回长度
让我们看一下实现以便更好地理解
示例 (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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

