其他分享
首页 > 其他分享> > 删除排列数组中的重复项

删除排列数组中的重复项

作者:互联网

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

执行用时 :128 ms, 在所有 Python3 提交中击败了33.79% 的用户
内存消耗 :15.3 MB, 在所有 Python3 提交中击败了5.25%的用户

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

首先判断两种特殊情况,一种是nums数组为空,另一种nums中只有一个元素
a从0开始,b从1开始,
如果nums[a]不等于nums[b],则证明nums[b]不是重复项,将nums[b]赋值给nums[a+1],a,b
指针分别指向下一个(a自加一,b自加一)
否则,仅仅将指针移向b的下一个(b自加一)
在循环中将不重复项赋值给nums[a+1],所以返回移除后数组的新长度,返回的是a+1

标签:删除,nums,重复,len,数组,移除,自加
来源: https://blog.csdn.net/ingenuou_/article/details/98464103