class Solution {
public int longestConsecutive(int[] nums) {
// 泛型
Set<Integer> num_set = new HashSet<Integer>();
// 去重
for(int num : nums){
num_set.add(num);
}
int maxLen = 0;
for(int num : num_set){
// 检查前置数字是否存在
if(!num_set.contains(num - 1)){
// 最小权限访问
int currentNum = num;
int currentLen = 1;
//如果数字后置存在则增加
while(num_set.contains(currentNum + 1)){
currentNum +=1;
currentLen +=1;
}
// 挑出最大的间隔长度
maxLen = Math.max(maxLen , currentLen);
}
}
return maxLen;
}
}
function longestConsecutive(nums: number[]): number {
let mySet: Set<number> = new Set<number>();
for(let num of nums){
mySet.add(num);
}
let maxLen:number = 0;
for(let num of mySet){
if(!mySet.has(num - 1)){
let currenNum:number = num;
let currenLen:number = 1;
while(mySet.has(currenNum + 1) ){
currenNum += 1;
currenLen +=1;
}
maxLen = Math.max(maxLen, currenLen);
}
}
return maxLen;
};