LeetCode:Longest Consecutive Sequence
2016-06-11 15:08
387 查看
Longest Consecutive Sequence
Total Accepted: 67348 TotalSubmissions: 206214 Difficulty: Hard
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.
Subscribe to see which companies asked this question
Hide Tags
Array Union
Find
Hide Similar Problems
(M) Binary Tree Longest Consecutive Sequence
思路:
使用一个Map保存连续序列两个边缘的值,这个值表示这个序列最大宽度。
如有nums = [1,2,3,4,5],则map.get(1) = map.get(5) = 5;
设有nums = [1,2,5,6,3,4].
1 2 3 4 5 6
1: 1
2:
2 2
5: 2 2
1
6: 2 2
2 2
3:
3 2 3 2 2
4:
6 2 3 6 2 6
java code:
public class Solution { public int longestConsecutive(int[] nums) { int ans = 0; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for(int n : nums) { if(!map.containsKey(n)) { int left = map.containsKey(n-1) ? map.get(n-1) : 0; int right = map.containsKey(n+1) ? map.get(n+1) : 0; int sum = left + right + 1; map.put(n, sum); map.put(n-left, sum); map.put(n+right, sum); ans = Math.max(ans, sum); } } return ans; } }
相关文章推荐
- poj 2533 Longest Ordered Subsequence
- ued
- 使用YUI Compressor压缩CSS/JS
- IDM 6.25 build 21破解笔记
- xampp 403 You don't have permission to access the requested directory
- StringBuffer与StringBuilder有什么区别
- 利用脚本在Virtualbox中部署fuel Openstack
- amaze UI的使用
- 虚幻4 添加变量控制UI的渲染,详细教程。
- SICP deque
- MQTT协议与mosquitto的安装使用
- Android属性之build.prop生成过程分析
- QtQuick 全局缩放和放大<DPI>
- The requested resource is not available错误
- UI Components的理解
- Property List Programming Guide(二)
- Map集合中value()方法与keySet()、entrySet()区别
- Making Quick macroScripts in 3DS Max
- 对Handler,Looper,messagequeue,HandlerThread的深入理解,Handler常见面试题
- leetcode 95. Unique Binary Search Trees II-分治算法|动态规划|卡特兰数