最长连续序列-哈希表
Problem: 128. 最长连续序列
思路
你选用何种方法解题?
哈希表
解题过程
这些方法具体怎么运用?
遍历数组,存到哈希表中 遍历数组,判断这个数前一个数在不在哈希表里,不再我们就向前遍历,存在就len+1 这样我们就不会重复遍历了,比如数列2,3,4;只有2会进行遍历,因为3和4的前一个数都在哈希表里,不会重复遍历 最后找到最长的len即可
Code
function longestConsecutive(nums: number[]): number {
let num_set:Set<number> = new Set();
for(const num of nums){
num_set.add(num);
}
let longestStreak = 0;
for (const num of num_set) {
if(!num_set.has(num-1)){
let currentNum = num;
let currentStreak = 1;
while (num_set.has(currentNum + 1)){
currentNum +=1 ;
currentStreak += 1;
}
longestStreak = Math.max(longestStreak,currentStreak);
}
}
return longestStreak;
};