当前位置: 首页 > backend >正文

力扣刷题(第五十天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

存在重复元素

解题思路

最直接的思路是使用哈希集合(HashSet)来记录数组中已经出现过的元素。遍历数组时,检查当前元素是否已经在集合中:

  • 如果存在,说明有重复元素,返回 true
  • 如果不存在,将该元素加入集合
  • 遍历结束后仍未发现重复元素,则返回 false

这种方法的时间复杂度是 O (n),空间复杂度是 O (n),其中 n 是数组的长度。

class Solution:def containsDuplicate(self, nums: List[int]) -> bool:seen = set()for num in nums:if num in seen:return Trueseen.add(num)return False

逐行解释

class Solution:def containsDuplicate(self, nums: List[int]) -> bool:# 使用集合(哈希表)来记录已经出现过的元素# 集合的特点是元素唯一,查找元素的时间复杂度为O(1)seen = set()# 遍历数组中的每个元素for num in nums:# 检查当前元素是否已经在集合中出现过if num in seen:# 如果存在,说明有重复元素,直接返回Truereturn True# 如果不存在,将当前元素加入集合seen.add(num)# 遍历完整个数组都没有发现重复元素,返回Falsereturn False
http://www.xdnf.cn/news/12732.html

相关文章:

  • 海伯森超高速工业相机:超高帧率,工业视觉新 “视” 力
  • Linux(生产消费者模型/线程池)
  • 一类简单而特殊数列的通项公式求法
  • 16-Oracle 23 ai-JSON-Relational Duality-知识准备
  • 靶场(二十)---靶场体会小白心得 ---jacko
  • Docker安装MQEX
  • MobaXterm配置跳转登录堡垒机
  • 详解二叉树遍历的非递归实现
  • Flask与Celery 项目应用(shared_task使用)
  • 知识改变命运?如何有规划的学好计算机专业?
  • 唯创知音WT2801芯片在家用血糖仪上的应用方案
  • 20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决
  • 【KiCad】立创封装导入KiCad
  • Linux编程:2、进程基础知识
  • Linux下如何查看一个端口被什么进程占用? 该进程又打开了哪些文件?
  • python入门(2)
  • 机器学习期末复习
  • 使用有限计算实现视频生成模型的高效训练
  • 【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
  • C#合并CAN ASC文件:实现与优化
  • 中山大学美团港科大提出首个音频驱动多人对话视频生成MultiTalk,输入一个音频和提示,即可生成对应唇部、音频交互视频。
  • Google机器学习实践指南(机器学习四大特征工程核心解析)
  • Java 文件注释规范(便于生成项目文档)
  • 数据类型--实型
  • Linux与Windows切换使用Obsidian,出现 unexplained changes 问题的解决
  • Java IO流完全指南:从基础到进阶的全面解析
  • OpenLayers:封装Tooltip
  • Hi Robot-分层学习系统-2025.2.26-π系列-暂未开源
  • Model Context Protocol (MCP) 是一个前沿框架
  • 2023年ASOC SCI2区TOP,随机跟随蚁群优化算法RFACO,深度解析+性能实测