LeetCode--128--最长连续序列(python)
2024-09-03 07:40:35
给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
输入: [100, 4, 200, 1, 3, 2]
输出: 4
解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。
暴力超时。。。
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
longestSequence = 0
for num in nums:
curNum = num
streak = 1 while curNum +1 in nums:
curNum += 1
streak += 1
longestSequence = max(longestSequence,streak)
return longestSequence
先排序,在有序list中,判断前一个数字是否比后一个少1,注意最后一个可能是最长连续序列的一部分,所以最后要再比一次
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
if not nums:
return 0
nums.sort()
longestSequence = 1
curStreak = 1
for i in range(1,len(nums)):
if nums[i] != nums[i-1]:
if nums[i] == nums[i-1]+1:
curStreak += 1
else:
longestSequence = max(longestSequence,curStreak)
curStreak = 1
return max(longestSequence, curStreak)
最新文章
- Atitit数据库层次架构表与知识点 attilax 总结
- C#之常见数组编码错误
- 2016HUAS暑假集训训练2 J - 今年暑假不AC
- 为什么在Mac中无法用k web运行ASP.NET 5程序
- EventBus (四) Sticky事件
- Java环境解析apk文件信息
- Android SharedPreferences 见解
- Qt的进度条设置
- 转:eclipse怎样修改包(package)的显示样式、格式 工具/原料
- CAS认证(3):验证用户信息
- Python进阶-继承中的MRO与super
- mariadb集群与nginx负载均衡配置--centos7版本
- 你不知道的JavaScript--Item10 闭包(closure)
- VI和VIM
- Codeforces 915G Coprime Arrays 莫比乌斯反演 (看题解)
- Android 8 蓝牙 扫描流程
- Html5画钟表盘/指针实时跳动
- 转载 React.createClass 对决 extends React.Component
- ssh 认证
- Asp .Net core 2 学习笔记(3) —— 静态文件
热门文章
- 阶段3 1.Mybatis_12.Mybatis注解开发_4 mybatis注解开发CRUD的其他操作
- 阶段3 1.Mybatis_09.Mybatis的多表操作_4 完成account一对一操作-建立实体类关系的方式
- 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用
- robotframework的变量的使用
- Android下Native的so编译:使用ndk-build.cmd/.sh
- 安装golang web框架 gin
- 基于原生XMLHttpRequest封装
- Django-DRF组件学习-预备知识
- input函数以及while处理列表和字典
- python+selenium操作cookie