最长连续序列
思路
- 先把序列遍历到set当中
- 设以k为起点的序列,如果有k+1,k+2存在,则直接长度响应增加。
- 为了防止重复记录,如果有k-1存在,则条件2必然满足;所以只有在k-1不存在时,才会去执行2条件
代码
public int longestConsecutive(int[] nums) {
Set<Integer> numset=new HashSet<Integer>();
for(int num:nums){
numset.add(num);
}
int longestStreak=0;
for(int num:nums){
if(!numset.contains(num-1)){
int current=num;
int curlength=1;
while(numset.contains(current+1)){
current++;
curlength++;
}
longestStreak=Math.max(longestStreak,curlength);
}
}
return longestStreak;
}