2021-10-05

思路

1、排序
2、双指针,一个遍历,一个记录新数组的末尾索引

代码
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        # 双指针
        n = len(nums)
        i, j = 0, -1  # i遍历,j记录当前不重复的序列的末尾索引
        preNum = float('-inf')     # 记录前一个元素,需要先排序,把重复元素放在一起遍历
        nums.sort()
        while i < n:
            if nums[i] != preNum:
                preNum = nums[i]
                j += 1 
                nums[j] = nums[i]
            i += 1 
        return j + 1 
复杂度

时间复杂度:o(nlogn)
空间复杂度:o(1)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容