一、题目
二、代码
class Solution
{
//哈希表
//设置边界 而不用每一个都设置
public int longestConsecutive(int[] nums)
{
Map<Integer,Integer> map = new HashMap<>();
int length = 0;
for(int num:nums)
{
if(!map.containsKey(num))
{
int left = map.getOrDefault(num-1,0);
int right = map.getOrDefault(num+1,0);
int value = map.getOrDefault(num-1,0)+map.getOrDefault(num+1,0)+1;
map.put(num,value);
map.put(num-left,value);
map.put(num+right,value);
// System.out.println(" num " +num);
// System.out.println(" 设置 " +" "+(int)(num-left)+" "+value);
// System.out.println(" 设置 " +" "+(int)(num+right)+" "+value);
length = Math.max(length,value);
}
}
return length;
}
}