Longest Consecutive Sequence
来源:互联网 发布:淘宝贷款可以逾期多久 编辑:程序博客网 时间:2024/06/05 07:50
描述
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.
给一个未排序的整型数组,找到最长连续的序列。
例如给 [100, 4, 200, 1, 3, 2],最长连续序列是.1.2.3.4返回长度时4
时间复杂度必须是O(n)
分析:时间复杂度有限制,不能用普通的排序算法。
用unordered_map进行存储
class Solution {public: int longestConsecutive(vector<int>& nums) { unordered_map<int,bool> used; for(auto i :nums) used[i]=false; int longest=0; for(auto i:nums) { int length=1; if(used[i]==true) continue; used[i]=true; //在map中找比i大1的连续数,如果没有就返回尾后迭代器,有的 //话,继续找。 for(int j=i+1;used.find(j)!=used.end();j++) { used[j]=true; ++length; } for(int j=i-1;used.find(j)!=used.end();j--) { used[j]=true; ++length; } longest=max(length,longest); } return longest; }};
注意是在map容器里进行查找,
长度是循环每个元素时定义的。
0 0
- Longest Consecutive Sequence
- Longest Consecutive Sequence
- Leetcode : Longest Consecutive Sequence
- [Leetcode] Longest Consecutive Sequence
- longest consecutive elements sequence
- [leetcode] longest consecutive sequence
- Longest Consecutive Sequence
- Longest Consecutive Sequence
- 【leetcode】Longest Consecutive Sequence
- LeetCode - Longest Consecutive Sequence
- [LeetCode]Longest Consecutive Sequence
- leetcode:Longest Consecutive Sequence
- Longest Consecutive Sequence
- Longest Consecutive Sequence
- [Leetcode]Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- Longest Consecutive Sequence
- Longest Consecutive Sequence
- static块相关例子
- CentOS5.5安装memcached 1.4.5
- 二分查找算法
- 索尼tables安装不上apk
- gitlab 安装 备份 恢复 邮箱配置 修改web端口
- Longest Consecutive Sequence
- XML基础
- <稀缺-我们是如何陷入贫穷与忙碌的> 摘要
- 数字图像处理的基础
- in与exist
- 开始使用Android Sutdio(三)创建一个Hello World程序
- Tesseract-OCR 进行文字识别 VS2010及不安装opencv,就可以使用opencv
- hive subprocess failed with code X 的错误码对应信息
- Android开发响应检测及内存分析 - 【StrictMode】