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

频繁查找用哈希,顺序访问用列表

代码比较:
代码片段1

class solu:def missingNumber(self,nums: list) -> int:num_set = []# 将数组中的正整数添加到集合中for num in nums:if num > 0:num_set.append(num)print(num_set)smallest_missing = 1while smallest_missing in num_set:smallest_missing += 1return smallest_missing
s=solu()
print(s.missingNumber([1,2,0]))

和代码片段2

class solu:def missingNumber(self,nums: list) -> int:num_set = set()# 将数组中的正整数添加到集合中for num in nums:if num > 0:num_set.add(num)print(num_set)smallest_missing = 1while smallest_missing in num_set:smallest_missing += 1return smallest_missing
s=solu()
print(s.missingNumber([1,2,0]))

这两个实现的本质区别在于数据结构的选择,这导致了性能上的巨大差异。
核心区别
第一个实现:使用 list(列表)
第二个实现:使用 set(集合)
详细分析
1. 数据结构差异
第一个实现 - 使用列表
num_set = [] # 实际上是列表,变量名有误导性
num_set.append(num)
第二个实现 - 使用集合
num_set = set() # 真正的集合
num_set.add(num)
2. 性能关键:查找操作
while smallest_missing in num_set: # 这一行的性能天差地别!
smallest_missing += 1
对于列表:
element in list 操作的时间复杂度是 O(n)
需要遍历整个列表来查找元素
最坏情况下需要检查所有元素
对于集合:
element in set 操作的时间复杂度是 O(1)
基于哈希表实现,直接定位元素
查找时间基本恒定
在这里插入图片描述
总结:在列表和集合中查找数据的区别
列表查找:像在书页中逐行搜索关键词
集合查找:像通过目录直接翻到对应页码

除了集合(set)之外,还有几种数据类型也基于哈希表实现,具有O(1)的查找性能
在这里插入图片描述
核心建议:
需要快速查找时:使用 set 或 dict
需要键值对:使用 dict
只需要成员检查:使用 set
需要顺序访问:使用 list
记住这个规则:"频繁查找用哈希,顺序访问用列表"

http://www.dtcms.com/a/602829.html

相关文章:

  • 模型蒸馏(Knowledge Distillation)
  • 电商网站合作网页设计图片主流尺寸
  • 投资网站建设及推广北京建设网服务大厅
  • 郑州建设网站的公司阳城seo排名
  • 宜春市城市建设网站苍南县住房和城乡规划建设局网站
  • 浅谈网站规划建设与管理维护企业站模板大全
  • 汕头网站建设维护网站建设的需要的工具
  • 网站提交了被收录后改怎么做php网站后台模板下载不了
  • Q3: create 和 create2 有什么区别?
  • 研发管理知识库(6)什么是CI/CD
  • 数据库知识整理——SQL数据更新
  • win7 iis架设网站思途旅游网站建设系统
  • 反编译易语言 | 探讨易语言的反编译方法与安全性分析
  • 无锡网站营销公司简介郑州加盟网站建设
  • 单位网站建设费用什么会计科目广告优化是做什么的
  • 自动化测试工具Katalon 全面介绍与实际体验
  • 游戏盾的流量清洗
  • 楚雄做网站敬请期待上一句
  • 山东鲁中公路建设有限公司网站站点传统的推广方式主要有
  • 电子商务网站建设读书笔记秒收网站
  • 互联网网站 数据库网站优化建设宁夏
  • 网站扫码怎么做的团智慧团建登录入口
  • 哪个网站可以做免费商业推广建设个人网站的要求
  • 4.1.0 EL9410 用于 E-bus 的电源端子模块介绍
  • 网站开发脚本语言农产品网站的品牌建设
  • 从0到1学习Qt -- 常见控件QWidget(二)
  • 网站建设程序文件一台云服务器可以做多个网站
  • Oracle:查询当前正在等待执行的SQL语句
  • 交通信息华建设网站鱼爪网商城网站如何建设
  • 炫酷做网站背景图环保网站建设的目的