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

128.最长连续数列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

思路:查找连续不重复,最先想到的是unordered_set,那么怎么实现它呢?
首先将nums备份到set中,因为最后需要统计的是长度,故需要定义一个ans = 0。
先去查找重复部分,对set进行遍历,如果重复,就遍历下一个元素。
当此元素不与前一个元素相同时,在此元素的基础上+1,判断是否连续,因为这个过程我们不知道要做几次,故使用while循环。
最后当当前连续序列的长度n * 2 > nums.size() 时,我们就不需要再进行遍历找后续可能连续的序列了,此时不再存在连续数列会比当前连续序列长。

代码实现:

class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> set(nums.begin(), nums.end());int ans = 0;for (int num : set) {if (set.contains(num - 1)) {continue;}int y = num + 1;while (set.contains(y)) {y++;}ans = max(ans, y - num);if (ans * 2 > nums.size()) {break;}}return ans;}
};

时间复杂度:O(n)
空间复杂度:O(n)

如果使用排序法呢?
先进行判空处理,排序后需先进行对重复值的处理,这里我们可以int i = 1,从nums[1]开始遍历,往前看是否相等,若相等,看下一个值,若不等,看此值是否为nums[i-1]+1,若是,则ans++,
如若断开,则需先将得到的长度进行存储,再重新开始记录。

代码实现:

class Solution {
public:int longestConsecutive(vector<int>& nums) {if (nums.empty())return 0;sort(nums.begin(), nums.end());int ans = 1;int val = 1;for (int i = 1; i < nums.size(); i++) {if(nums[i]==nums[i-1]){continue;}else if(nums[i]==nums[i-1]+1){val++;}else{ans = max(ans,val);val = 1;}}ans = max(ans,val);return ans;}
};

时间复杂度:O(n long n)
空间复杂度:O(1)

http://www.jsqmd.com/news/440572/

相关文章:

  • 2026年靠谱的uv涂装生产线品牌推荐:静电涂装生产线直销厂家选哪家 - 行业平台推荐
  • 企业高质量发展的4D层级体系构建:BD→OD→TD→LD
  • AI原生应用领域安全防护的体系架构与设计原则
  • 【图像加密】基于二维 Logistic 混沌映射+ Liu混沌系统的图像加密 解密及安全性分析信息熵、相邻像素相关性)附matlab代码
  • 2026年北京豆包广告服务商有哪些?联系方式与服务模式全解析 - 品牌2026
  • Milvus Collection 基本操作(Java SDK)
  • 浅析在Cursor中落地AI原生开发工作流OpenSpec规范管理工具:面向AI辅助工作流的规范驱动开发技术实践
  • 2026年GEO服务商怎么选?豆包广告公司联系方式一览 - 品牌2026
  • MilvusVectorStore 使用指南 ——基于spring-ai(可用于搭建Rag)
  • 2026年知名的pa66隔热条工厂推荐:门窗隔热条/尼龙隔热条/铝合金隔热条源头工厂推荐 - 行业平台推荐
  • RASPI裸机8(Filesystem)(TODO)
  • 2026年质量好的吸塑PET片厂家推荐:折盒PET片/食品级PET片/透明窗口膜PET片实力工厂怎么选 - 行业平台推荐
  • 记录win下,WPF设置 System.AppUserModel.PreventPinning 属性用于阻止用户将应用程序固定到任务栏
  • AI时代如何获客?联系哪家公司? - 品牌2026
  • P3750 [六省联考 2017] 分手是祝愿题解
  • 【算法面试必刷】200. 岛屿数量
  • 搞懂这两个组件,Spring 配置问题少一半!
  • 3.5 Spring Boot的配置文件
  • RASPI裸机7(exceptions)(TODO)
  • 【电力系统】储能调峰调频模型优化求解附Matlab代码
  • 00.状态码
  • 2026年热门的侧装缓冲滑轨厂家推荐:钢珠缓冲滑轨/抽屉缓冲滑轨/骑马抽缓冲滑轨值得信赖的生产厂家 - 行业平台推荐
  • 2026年知名的无油空压机品牌推荐:往复式空压机/活塞往复式空压机/直联便携式空压机源头厂家推荐几家 - 行业平台推荐
  • Go 加密性能极限优化实战手册
  • 详细介绍:spring boot项目欢迎页设置方式
  • Skills搭建全流程,看完你的Skills就牛了!存一下吧!
  • 北京的 Clara ,她是如何从一个小白开始做出海独立站的
  • 2026年DeepSeek推广公司有哪些?联系方式与服务对比一览 - 品牌2026
  • ngx_http_index_set_index
  • 2026年知名的废气处理公司推荐:西安废气处理/陕西废气处理工程制造厂家哪家靠谱 - 行业平台推荐