您的位置:首页 > 产品设计 > UI/UE

LeetCode 128 Longest Consecutive Sequence

2016-12-13 16:08 423 查看
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.

Runtime: 11
ms 

public int longestConsecutive(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int n : nums) set.add(n);
int max = 0;
for (int n : set) {
if (!set.contains(n - 1)) { // only check for one direction
int m = n + 1;
while (set.contains(m)) {
m++;
}
max = Math.max(max, m - n);
}
}
return max;
}


常用数据结构及复杂度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: