❤本题不是很好想,具体思路我已经录制视频上传到抖音账号:王玥遥上了,需要自取❤
class Solution {
public int longestConsecutive(int[] nums) {
if(nums.length==0) return 0;
if(nums.length==1) return 1;
HashMap<Integer,Integer> map = new HashMap<>();
for(int num:nums){
if(map.containsKey(num))
continue;
int left=map.get(num-1)!=null?map.get(num-1):0;
int right = map.get(num+1)!=null?map.get(num+1):0;
if(left>0&&right>0){
map.put(num-left,left+right+1);
map.put(num+right,left+right+1);
map.put(num,1);
}
else if(left>0){
map.put(num-left,left+1);
map.put(num,left+1);
}
else if(right>0){
map.put(num+right,right+1);
map.put(num,right+1);
}
else{
map.put(num,1);
}
}
int max=0;
for(int value:map.values()){
max=Math.max(max,value);
}
return max;
}
}