目录

  • 1.问题描述
  • 2.问题分析
  • 3.代码
  • 4.总结

1.问题描述

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
For example, Given [100, 4, 200, 1, 3, 2], The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.
Your algorithm should run in O(n) complexity.

2.问题分析

如果允许O(nlogn)的复杂度,那么可以先排序,本题要求O(n)。
由于序列里的元素是无序的,又要求O(n),可以使用哈希表。
用一个哈希表unordered_map<int, bool>used记录每个元素是否使用,对每个元素,以该元素为中心,网左右扩张,直到不连续为止,记下最长的长度。

3.代码

class Solution{public:int longestConsecutive(const vector<int> &num){unordered_map<int, bool> used;    //使用unordered_map存vector中数据,以及是否被访问到for(auto i : num) used[i] = false;//每一个位置初始化为falseint longest = 0;                 //将最长值初始化为0for(auto i : num) {if(used[i]) continue; //访问过,跳过         used[i] = true;            //设置当前值为访问过int length = 1;         //长度初始化为1for(int j = i + 1;used.find(j) != used.end();++j) //从i出发,向右寻找更长连续序列{used[j]=true;++length;}for(int j = i-1; used.find(j) != used.end();--j)   //从i出发,向左寻找更长连续序列{used[j] = true;++length;}longest = max(longest, length);                       //更新最长子序列长度}return longest;}
};

4.总结

本题的关键在于:
1、使用unordered_map,记录数字是否被访问过,是则标记为true;
2、以当前值为中心,向左右两边扩展寻找连续子序列,记录最大长度。

Longest_consecutive_sequence相关推荐

  1. Leetcode_128_Longest Consecutive Sequence

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43854597 Given an unsorted arra ...

最新文章

  1. IIS6 MVC3 配置
  2. linux shell中文显示
  3. ASP读取ini文件的实现方法
  4. 剑桥的商学院硕士的创业项目找我做tech lead,稳得一批
  5. 进程控制 (二) Others
  6. mysql mgr 配置_MySQL5.7 MGR安装配置
  7. linux-权限管理acl高级
  8. python写一个app接收摄像头传输的视频_如何使用Python中的tcp套接字发送和接收网络摄像头流?...
  9. Qt connect()的第五种重载[=](){}
  10. 前端修炼の道 | 如何成为一名合格前端开发工程师?
  11. 容器中Bean的生命周期
  12. jw player 5去掉share,info,embed页面
  13. 《普通心理学》读书笔记
  14. 服务器芯片将填补中国空白,3年迭代4次技术,芯片黑马填补国产空白,韩企的垄断被打破...
  15. 服务器本地存储文件,云服务器存储放在本地
  16. 【office 2007~office 2019】Excel日期选择控件插件安装
  17. unity占用太多c盘空间
  18. Hadoop-HFDS知识点总结
  19. 转载:java面试题(一)
  20. 【2011年全国试题3】已知循环队列存储在一维数组A[0…n-1],且队列非空时,front和rear分别指向队头元素和队尾元素。若初始时队列为空,且

热门文章

  1. Java求100内 奇数 和 偶数 的和
  2. VIVADO生成并导入网表文件
  3. 应用宝上线应用后一直处于审核状态问题解决
  4. Elasticsearch 7.1API 文档翻译
  5. OSChina 周三乱弹 —— who's your 大爷
  6. 【史上最全】国内外常用精品API接口汇总
  7. Matlab 数字图像处理 学习笔记(一)
  8. SpringBoot MultipartResolver的坑
  9. 海外国外支付渠道接口对接
  10. THREE.JS自定义中心旋转轴