Longest Consecutive Sequence
来源:互联网 发布:新手开淘宝店怎么装修 编辑:程序博客网 时间:2024/06/05 17:29
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.
题目解析:
(1)这里主要用到了unordered_set的数据结构 他将数组的元素机型hash,因此有很快的访问速度。
(2)针对每一个元素查找它左右的元素,并将他们从集合中去除。这样每个元素都可以得到针对这个元素的连续序列的长度。
(3)在所有连续中挑选一个最长的就可以了。
#include <iostream>#include <vector>#include <unordered_set>using namespace std;int longestConsecutive(vector<int> &num) {unordered_set<int> map;for(unsigned int i=0;i<(int)num.size();i++){map.insert(num[i]);}int longest = 0;for(int i=0;i<(int)num.size();i++){if(map.find(num[i]) == map.end())continue;map.erase(num[i]);int subSeq = 1;int n = num[i]-1;while(map.find(n)!=map.end()){subSeq++;map.erase(n);n--;}n = num[i]+1;while(map.find(n)!=map.end()){subSeq++;map.erase(n);n++;}if(longest < subSeq)longest = subSeq;}return longest;}int main(void){vector<int> num;num.push_back(100);num.push_back(4);num.push_back(200);num.push_back(1);num.push_back(3);num.push_back(2);cout << longestConsecutive(num) << endl;system("pause");return 0;}
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
- java 多线程并行计算之求素数(星星笔记)
- HDU 4998 Rotate
- 设计模式观后(c++还原之十 代理模式)
- 浅析ArrayList的内部实现
- 关于构造函数
- Longest Consecutive Sequence
- Android关闭软键盘
- hdu5015 矩阵快速幂233(好题)
- 数组最长递增子序列
- 面试题笔记1
- POJ 2348 Euclid's Game(博弈)
- 题目1519:合并两个排序的链表
- 1NF 2NF 3NF
- struts2.0中struts.xml配置文件详解