删除排序数组中的重复项——python

问题描述删除排序数组中的重复项——python_第1张图片

问题解析

根据题目描述:原列表是有序的。只能使用已知数量的空间,不得创建额外列表。使用两个index p和q,p用来指示为重复元素,q用来指示和p位置处相等的元素,直到q处元素不和p处相等p = p + 1
由于p为列表中不重复元素,则列表长度应为p+1

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        p = 0
        q = 1
        while q < len(nums):
            if nums[p] == nums[q]:
                q = q + 1
            else:
                p = p + 1
                nums[p] = nums[q]
                q = q + 1
        return p + 1

执行结果与消耗

在这里插入图片描述

你可能感兴趣的:(删除排序数组中的重复项——python)