美文网首页
数组-请你 原地 删除重复出现的元素

数组-请你 原地 删除重复出现的元素

作者: 足__迹 | 来源:发表于2021-11-02 17:40 被阅读0次

    数组是我们用到最多的

    删除排序数组中的重复项

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
    
    ### 方法1 双指针从左向右
    def removeDuplicates(nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        right, inder = 0, 1
        nums.sort()
        for i in range(len(nums) + 1):
            if nums[right] == nums[inder]:
                inder = inder + 1
            else:
                right = right + 1
                nums[right] = nums[inder]
        return right+1,nums[:right+1]
    
    
    ## 方法2 反向查询
    class Solution(object):
        def removeDuplicates(self, nums):
            nums.sort()
            inder = -1
            for i in range(len(nums)-1):
                if nums[inder] == nums[inder-1]:
                    del nums[inder]
                else:
                    inder=inder-1
    
            return len(nums),nums
    
    
    if __name__ == '__main__':
        nums = [1, 2, 3, 2, 1, 3, 4, 1]
        num, nums = Solution().removeDuplicates(nums)
        print("无重复列表长度{},值{}".format(num, nums))
    

    相关文章

      网友评论

          本文标题:数组-请你 原地 删除重复出现的元素

          本文链接:https://www.haomeiwen.com/subject/nxcxjktx.html