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

leetcode_128 最长连续序列

1. 题意

给定一组数,求最长连续序列,要求时间复杂度 O ( n ) O(n) O(n)

2. 题解

常规解法肯定是直接排序,再求最长连续序列,但是这样复杂度肯定是

超了的。

因此我们用哈希表来存,之后再求最长连续序列。

一个比较重要的小优化是,如果 v − 1 v-1 v1在哈希表中,我们就不需要再从

v v v开始枚举最长连续序列了!

class Solution {
public:int longestConsecutive(vector<int>& nums) {std::unordered_set<int> hs;for (int num: nums) {hs.insert( num );}int ans = 0;for (auto it = hs.begin(); it != hs.end(); ++it) {int v = *it;if ( hs.count( v - 1) ) {continue;}int ed = v + 1;while ( hs.count(ed) ) { ed++;}ans = std::max( ans, ed - v);}return ans;}
};
http://www.dtcms.com/a/249804.html

相关文章:

  • CKA考试知识点分享(16)---cri-dockerd
  • Seata与消息队列(如RocketMQ)如何实现最终一致性?
  • 关于凸轮的相位角计算
  • 在docker中部署dify
  • TryHackMe (THM) - SOC基础知识
  • slam--最小二乘问题--凹凸函数
  • Win10安装DockerDesktop踩坑记
  • C++斯特林数在C++中的数学理论与计算实现1
  • YOLOv8模型剪枝实战:DepGraph(依赖图)方法详解
  • Win系统权限提升篇AD内网域控NetLogonADCSPACKDCCVE漏洞
  • create_react_agent + MCP tools
  • synchronized和ReentrantLock的区别
  • 【论文阅读】Qwen2.5-VL Technical Report
  • Vue 3 九宫格抽奖系统,采用优雅的 UI 设计和流畅的动画效果
  • 打卡Day53
  • 在tensorrt engine中提高推理性能小记
  • 网络安全防护:Session攻击
  • 【python深度学习】Day53对抗生成网络
  • Vue3 + TypeScript + Element Plus 设置表格行背景颜色
  • 第十七章 Linux之大数据定制篇——Shell编程
  • 【C语言】C语言发展历史、特点及其应用
  • SpringBoot源码解析(十二):@ConfigurationProperties配置绑定的底层转换
  • 树莓派智能小车红外避障实验指导书
  • DeepSeek介绍
  • 【Canvas与曲线】使用贝塞尔二次曲线实现平滑过渡的内旋拼合三角形
  • 人工智能学习13-Numpy-规律数组生成
  • Python训练营-Day31-文件的拆分和使用
  • JAVA实战开源项目:在线课程管理系统 (Vue+SpringBoot) 附源码
  • 【大模型分布式训练】多卡解决单卡训练内存不足的问题
  • 【算法】基于中位数和MAD鲁棒平均值计算算法