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

【LeetCode 128】 最长连续子序列

判断前一位数在不在字典中是这道题的关键之处,这样就可以避免重复查找,从而达到O(n) 的时间复杂度。如果没有这个判断,那么时间复杂度最坏也得是O(N^2)级别的。

1. 题目

2. 分析

  • 合理利用数据结构。本题中使用了set来保存数组的元素,这是为了加快数据的查找。
  • 聪明地利用规则,从而进一步减少时间复杂度。

3. 代码

class Solution:def longestConsecutive(self, nums: List[int]) -> int:if len(nums) == 0:return 0 nums_set = set(nums) # 使用set存储便于查找max_res = 1for i in nums:# 如果i-1 不在set中,那么就必须亲自下场计算值# 正是这个if 保证了 O(n) 时间复杂度if i-1 not in nums_set:cnt = 1start = i+1while(start in nums_set):cnt+=1start += 1max_res = max(max_res, cnt)return max_res
http://www.lryc.cn/news/370560.html

相关文章:

  • SpringCloud-面试篇(二十六)
  • 使用__try...__except和try...catch捕获异常实例分享(附源码)
  • 基于51单片机的简易温控水杯恒温杯仿真设计( proteus仿真+程序+设计报告+讲解视频)
  • 王德峰视频讲座,王德峰视频全部大全集,百度云百度网盘资源下载
  • Visual Studio和BOM历史渊源
  • 虚拟现实(VR)游戏与增强现实(AR)游戏的区别
  • git已经设置了自己的账号和密码,提交信息还是别人解决方法
  • 探索面向对象与并发编程的完美融合:Java中的实践与思考
  • 探索在线问诊系统的安全性与隐私保护
  • How To: Localize Bar and Ribbon Skin Items
  • 通过 urllib 结合代理IP下载文件实现Python爬虫
  • 单线服务器与双线服务器的区别?
  • 使用Hadoop MapReduce实现各省学生总分降序排序,根据省份分出输出到不同文件
  • LeetCode | 66.加一
  • Oracle最终会扼杀MySQL?(译)
  • 分布式物联网平台特点
  • 【学习笔记】Linux文件编译调试相关(问题未解决)
  • 微信小程序毕业设计-驾校管理系统项目开发实战(附源码+论文)
  • 【多线程】进程与线程
  • 【文献阅读】一种多波束阵列重构导航抗干扰算法
  • 前端传递bool型后端用int收不到
  • 巴伦在接收链路中的应用
  • React常见面试题(2024最新版)
  • 【万方数据库爬虫简单开发(自用)】
  • 新渠道+1!TDengine Cloud 入驻 Azure Marketplace
  • 自动化压测工具开发(MFC)
  • 【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据
  • C# —— 字符串拼接
  • css3新增的伪类有哪些
  • 低代码开发:企业供应链数字化的挑战与应对