力扣本题传送门
这题有一个点儿,就是最长序列,中间只能相隔1,不能是其他的比如2,4,6,8等,在这个大前提下思考这个问题,最起码助教讲的也就是官方题解给出来的答案我能看懂.
/*
* @lc app=leetcode.cn id=128 lang=javascript
*
*
*/
// @lc code=start
/**
* @param {number[]} nums
* @return {number}
*/
var longestConsecutive = function (nums) {
let num_set = new Set();
// 把数组nums中 不重复的数字加入num——set中
for (const num of nums) {
num_set.add(num)
}
let longStreak = 0;
for (const num of nums) {
if (!num_set.has(num - 1)) {
let currentNum = num;
let currentStreak = 1;
while (num_set.has(currentNum + 1)) {
currentNum++;
currentStreak++;
}
longStreak = Math.max(longStreak, currentStreak)
}
}
return longStreak
};