longest consecutive elements sequence
来源:互联网 发布:校园网络广播系统方案 编辑:程序博客网 时间:2024/03/28 19:52
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.
使用map模板,
map记录了一个个的最大连续区间。并用两个关键字来检索,由小的检索到大的,和由大的检索到小的
主要思想是,新增的元素在两个区间之间既[..., a-1] a [a+1, ...] 合并区间。
为什么能得到最优解:贪心算法
因为每一个新元素,都尽可能的合并,取包含该元素的最大的连续区间。
using namespace std;class Solution {public: int longestConsecutive(vector<int> &num) { // Start typing your C/C++ solution below // DO NOT write int main() function unordered_map<int, bool> set; unordered_map<int, int> range; int max = 0; for(int i = 0; i < num.size(); i++) { if(!set[num[i]]) { set[num[i]] = 1; int left = num[i]; int right = num[i]; if(range.count(num[i] - 1) && range[num[i] - 1] <= num[i] - 1) { left = range[num[i] - 1]; range.erase(num[i] - 1); } if(range.count(num[i] + 1) && range[num[i] + 1] >= num[i] + 1) { right = range[num[i] + 1]; range.erase(num[i] + 1); } range[left] = right; range[right] = left; if(max < right - left + 1) max = right - left + 1; } } return max; }};
- longest consecutive elements sequence
- Longest Consecutive Sequence
- 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
- [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
- 获取中華民國时间
- Extjs中如何关闭parent对象窗口打开的window对象
- C# 模拟表单 post数据 文件 和 文本 HttpWebRequest
- 读书有感
- 黑马程序员——java编程那些事儿____面向对象(三)
- longest consecutive elements sequence
- UVa 490 - Rotating Sentences
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
- centos 终端界面代理设置
- json到objectc互转的类,自动枚举类属性
- spring mvc生命周期
- hadoop的datanode多磁盘空间处理
- (linux)python之setuptools、easyinstall、pip安装及连接redis
- struct和typedef struct的比较