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

LChot100--128. 最长连续序列

 代码如下所示。

class Solution:def longestConsecutive(self, nums: List[int]) -> int:set_nums = set(nums)maxlength = 0for x in set_nums:if x - 1 not in set_nums:tmplength = 1current_num = xwhile current_num + 1 in set_nums:current_num += 1tmplength += 1maxlength = max(maxlength, tmplength)return maxlength

代码有两个核心要点:

1. 由于题目要求时间复杂度为O(n),使用set()函数过滤掉列表中的重复元素,因为当出现重复元素时(如nums=[1, 1, 1, 1,... ]时),while循环会导致复杂度增加;

2. if x - 1 not in set_nums:是这段代码的灵魂,这判断了x-1是否在数组中,因为假设x-1在数组中,以x-1开头的连续序列一定超过以x开头的(这种情况下x-1, x均存在)。因此当x-1存在时可以直接跳过,只需判断x-1不存在时的情形

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

相关文章:

  • 7月26日京东秋招第一场第一题
  • 资产负债表及其数据获取
  • earth靶场
  • 【408二轮强化】数据结构——线性表
  • Pspice仿真电路:(三十四)如何使用Pspcie进行仿真
  • mount: /mnt/sd: wrong fs type, bad option, bad superblock on /dev/mmcblk1
  • 两个USB-CAN-A收发测试
  • Item14:在资源管理类中小心拷贝行为
  • 小白成长之路-部署Zabbix7(二)
  • 每日一题【删除有序数组中的重复项 II】
  • linux shell从入门到精通(二)——变量操作
  • 深度学习损失函数的设计哲学:从交叉熵到Huber损失的深入探索
  • java--JDBC
  • OSPF路由协议之多区域划分
  • nuphy新键盘快捷键
  • 智慧工业缺陷检测准确率↑32%:陌讯多模态融合算法实战解析
  • 英语听力口语词汇-8.美食类
  • docker安装问题汇总
  • ETE_Voice:端到端C++智能语音对话系统
  • 用unity开发教学辅助软件---幼儿绘本英语拼读
  • 相机标定相关原理
  • 【高等数学】第五章 定积分——第五节 反常积分的审敛法 Γ函数
  • C++编程学习(第16天)
  • 【RK3568 PWM 子系统(SG90)驱动开发详解】
  • JavaScript手录06-函数
  • Linux——线程同步
  • KubeKey安装KubeSphere、部署应用实践问题总结
  • 立式加工中心X-Y轴传动机械结构设“cad【6张】三维图+设计说明书
  • 计算机中的单位(详细易懂)
  • 计算机结构-逻辑门、存储器、内存、加法器、锁存器、程序计数器