最长连续序列

`/**
- @param {number[]} nums
- @return {number}
*/
var longestConsecutive = function(nums) {
const set = new Set(nums)
let best = 0
for (const x of set) {
if (!set.has(x-1)) {
let y = x
while (set.has(y)) y++
best = Math.max(best, y - x)
}
}
return best
};`
将数组放在set,可以自动去重,
首先依次遍历每一个数据,寻找它的前一个数是否存在,不存在才能作为开头,
能作为开头之后每次寻找y++数据,如果找不到了,就是最长的连续数组。然后继续以下一个数为开头。

浙公网安备 33010602011771号