栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

<LeetCode天梯>Day007 存在重复元素 | 初级算法 | Python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

<LeetCode天梯>Day007 存在重复元素 | 初级算法 | Python

工作日,又到新的一周了,来,今天和车神哥一起来提升自己的Python编程和面试能力吧,刷天梯~

以下为我的天梯积分规则

每日至少一题:一题积分+10分
若多做了一题,则当日积分+20分(+10+10)
若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60


初始分为100分
若差一天没做题,则扣积分-10分(周六、周日除外注:休息)
坚持!!!


初级算法 刷题目录 数组

题干

给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

示例1:

输入: [1,2,3,1]
输出: true

示例2:

输入: [1,2,3,4]
输出: false

示例3:

输入: [1,1,1,3,3,4,3,2,4,2]
输出: true


分析:

从题干上看,其实很简单,有相同则返回true,反之,则false

直接上代码:

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        n = len(nums)
        nums.sort()
        for i in range(n-1):
            if nums[i] == nums[i+1]:
                return True
        return False


从内存消耗上看,还不错,但是好像大家的代码都差不多。


怎么可能就写一种,然后我又写了一个较为复杂一点的:

基本思想也差不多,就先将无序数组按照从小到大排序,然后再判断相邻数直接有无相同,若有,则返回true,反之,false.

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        n = len(nums)
        # 先对数组进行排序
        s_n = nums.sort()
        su1 = 0
        su2 = 1
        for i in range(n-1, 0, -1):
            if nums[i] == nums[i-1]:
                su1 += 1
            else:
                su2 += 1
        if su2 != n:
            return True
        else:
            return False




没有上一个好感觉。哈哈哈

但是先排序再比较这种算法,应该算是最快的了,内存消耗等和电脑多少有点关系吧~

Reference

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/
来源:力扣(LeetCode)


今日得分:+10
总得分:210 加油!!!

❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
再加个坚持刷题!!!打天梯!!!
To Be No.1

⚡⚡


⚡创作不易⚡,过路能❤关注收藏点个赞❤三连就最好不过了

ღ( ´・ᴗ・` )


温柔正确的人总是难以生存,因为这世界既不温柔,也不正确。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348019.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号