Longest Consecutive Sequence
来源:互联网 发布:linux wine运行qq 编辑:程序博客网 时间:2024/05/22 07:53
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
- The key factors about a cluster is: lowest, highest, and length.
- Map lowest and highest to length. To merge two neighbor clusters, only need to update it's new lowest and highest, with new length.
- For every a[i], checking its neighbor a[i]-1 and a[i]+1 is enough.
Code in Java:
public class Solution { public int longestConsecutive(int[] a) { HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); int max = 1; for (int i : a) { if (map.containsKey(i)) continue; map.put(i, 1); if (map.containsKey(i - 1)) { max = Math.max(max, merge(map, i-1, i)); } if (map.containsKey(i + 1)) { max = Math.max(max, merge(map, i, i+1)); } } return max;}private int merge(HashMap<Integer, Integer> map, int left, int right) { int upper = right + map.get(right) - 1; int lower = left - map.get(left) + 1; int len = upper - lower + 1; map.put(upper, len); map.put(lower, len); return len;}}
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
- 对h.264压缩视频码流中i帧的提取(firstime)
- GitHub之fetch和pull的不同点
- 蓝桥杯 特殊回文数的查找
- HP大中华区总裁孙振耀退休感言
- 【C++ STL学习之二】容器vector大总结
- Longest Consecutive Sequence
- 反反复复反反复复反反复复
- 技术是根本
- USACO Arithmetic Progressions
- 黑马程序员高级视频学习笔记IO输入输出流之Reader类
- 2014-1-12遇到的英语单词
- 图标搜索引擎
- 【C++ STL学习之三】容器deque深入学习
- [leet code] Permutations