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

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

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


以下为我的天梯积分规则:


每日至少一题:一题积分+10分

若多做了一题,则当日积分+20分(+10+10)

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


初始分为100分

若差一天没做题,则扣积分-10分(周六、周日除外注:休息)

坚持!!!


初级算法

刷题目录

数组


image.png

image.png

题干

给定一个整数数组,判断是否存在重复元素。

如果存在一值在数组中出现至少两次,函数返回 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

image.png

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

image.png

image.png

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

基本思想也差不多,就先将无序数组按照从小到大排序,然后再判断相邻数直接有无相同,若有,则返回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

image.png

image.png

image.png



相关文章
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
140 1
|
8天前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
6月前
|
机器学习/深度学习 存储 算法
【LeetCode 热题100】347:前 K 个高频元素(详细解析)(Go语言版)
这篇文章详细解析了力扣热题 347——前 K 个高频元素的三种解法:哈希表+小顶堆、哈希表+快速排序和哈希表+桶排序。每种方法都附有清晰的思路讲解和 Go 语言代码实现。小顶堆方法时间复杂度为 O(n log k),适合处理大规模数据;快速排序方法时间复杂度为 O(n log n),适用于数据量较小的场景;桶排序方法在特定条件下能达到线性时间复杂度 O(n)。文章通过对比分析,帮助读者根据实际需求选择最优解法,并提供了完整的代码示例,是一篇非常实用的算法学习资料。
407 90
【LeetCode 27】347.前k个高频元素
【LeetCode 27】347.前k个高频元素
123 0
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
119 0
|
11月前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
251 4
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
125 2
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
202 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
【LeetCode 06】203.移除链表元素
【LeetCode 06】203.移除链表元素
92 0

热门文章

最新文章

推荐镜像

更多