zoukankan      html  css  js  c++  java
  • LeetCode 第26题--数组中重复元素

    1. 题目

    2.题目分析与思路

    3.代码

    1. 题目

    给定数组 nums = [1,1,2],

    函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。

    你不需要考虑数组中超出新长度后面的元素。

    2. 思路

      这道题总的来说非常神奇,也就是说我们不用删除数组,其实我们最好不要做的事情就是对正在遍历的数组进行或删除,如果说是空间复杂度需要有限制,那么我们应该要做的是复制和调换位置。。。 所以我在这里想删除数组就掉到坑里了。那么我们就要用双指针,我们已经确定了这个是排序后的数组了,那么只要把后面大的数字调换位置就好了。

    3. 代码

       

    class Solution:
        def removeDuplicates(self, nums: List[int]) -> int:
            j = 0
            for i in range(1,len(nums)):
                if nums[i] == nums[j]:
                    continue
                else:
                    j += 1
                    nums[j] = nums[i]
            return j+1
  • 相关阅读:
    解决IE8下VS2005,VS2008一些向导提示脚本错误问题
    12-7
    12.4
    写在十一月的尾巴
    11.28
    htm&css 颜色的浮动
    11.27
    11.26
    html基础——表格练习
    html基础——div/span
  • 原文地址:https://www.cnblogs.com/tjpeng/p/11628539.html
Copyright © 2011-2022 走看看