26. 删除排序数组中的重复项

26. 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组nums=[1,1,2], 函数应该返回新的长度2, 并且原数组nums 的前两个元素被修改为1,2。 你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums =[0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度5, 并且原数组nums 的前五个元素被修改为0,1,2,3,4。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

//nums是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplicates(nums);// 在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。for (int i = 0; i < len; i++) {    print(nums[i]);}

class Solution:

    def removeDuplicates(self, nums):

        """

        :type nums: List[int]

        :rtype: int

        """

        length = nums.__len__()

        i=1

        while i < length:

            j = i-1

            if nums[i] == nums[j]:

                nums.pop(i)

                length-=1

                continue

            else:

                i += 1

        return length


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目链接:https://leetcode-cn.com/problems/remove-duplicates-f...
    编程老司机阅读 4,987评论 0 0
  • 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使...
    Missmiss懵阅读 2,967评论 0 0
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,059评论 0 4
  • 曾经以为,在一起共事久的人都开得了玩笑,然而不以为然!不是每个人都开的了玩笑 场景一: 一群同事同事在饭桌上谈笑...
    运笔阅读 1,761评论 0 0
  • 往往平淡朴实的叙述,更能够触动人心,更能够引起内心的共鸣。 这部影片《房间》没有华丽的服装造型,特殊的摄影剪辑效...
    格子zZ阅读 4,429评论 0 0