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

2021-11-02  本文已影响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))
上一篇 下一篇

猜你喜欢

热点阅读