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

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

作者: 足__迹 | 来源:发表于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