题目描述如下
解题思路
解题代码如下
public int longestConsecutive(int[] num){
int res = 0;
HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int n : num){
//如果map集合中没有包含n
if(!map.containKey(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);
//记录最长的值
res = Math.max(res, sum);
map.put(n-left,sum);
map.put(n+right,sum);
}
//map中已经存在的话则表示是重复的,这个时候直接退出就可以了
else{
continue;
}
}
return res;
}