public class Solution {
// Store map(num[i], i)
// find max length
public int longestConsecutive(int[] num) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
boolean[] visited = new boolean[num.length];
int maxLen = 0;
// Store map(num[i], i)
for (int i=0; i<num.length; i++){
map.put(num[i], i);
}
// find max value
for (int i=0; i<num.length; i++){
if (visited[i]) continue;
int len = 1;
int val = num[i]-1;
while(map.containsKey(val)){
visited[map.get(val)] = true;
len++;
val--;
}
val = num[i]+1;
while(map.containsKey(val)){
visited[map.get(val)] = true;
len++;
val++;
}
maxLen = Math.max(maxLen, len);
}
return maxLen;
}
}
Longest Consecutive Sequence
最新推荐文章于 2021-03-25 11:39:43 发布