美文网首页
本周一道算法题(六十一)

本周一道算法题(六十一)

作者: CrazySteven | 来源:发表于2018-07-29 23:30 被阅读37次

本周题目难度级别'Medium',使用语言'Python'

题目:给你一个数组,你要进行数组去重,最多重复一次,然后将新的数组长度返回(注:只能在原数组上操作,不能创建新的数组)eg:给你[0,0,1,1,1,1,2,3,3],你要返回7,并将数组前七个元素改为[0, 0, 1, 1, 2, 3, 3]。

思路:题目就是思路了,遍历去重么,关键是怎么实现,直接看代码吧:

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        for i in nums:
            # 当数组的这个元素个数超过2就删掉一个
            while nums.count(i) > 2:
                del nums[nums.index(i)]
        return len(nums)

这个效率太低,换个姿势,小伙伴写的效率高,就不注释了:

class Solution:
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = 0
        for i in nums:
            if n < 2 or i > nums[n-2]:
                nums[n] = i
                n += 1
        return n

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

相关文章

  • 本周一道算法题(六十一)

    本周题目难度级别'Medium',使用语言'Python' 题目:给你一个数组,你要进行数组去重,最多重复一次,然...

  • 判断一个字符串是否是Ip地址

    面试的一道算法题

  • 算法题资源

    算法网站LeetCodeCodewars 个人出题每日一道算法题 每天小胡子哥都会出一道题。到目前为止(2017/...

  • JavaScript实现manacher算法:寻找最长回文子串

    在lintcode遇到的一道算法题

  • 这周一道算法题(六十七)

    本周题目难度'Easy',使用语言'Python'。我做算法题也要比较长的时间,最近太忙了,不想鸽太多就挑了一道简...

  • ARTS第三周(2018-12-16)

    1.Algorithm:每周至少做一个 leetcode 的算法题 第一道算法题:https://leetcode...

  • Strange Counter

    一道算法题:原题地址 Bob has a strange counter. At the first second...

  • ARTS(09)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(05)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(07)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

网友评论

      本文标题:本周一道算法题(六十一)

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