☰
Leetcode 128. 最长连续序列 JavaScript
2026/10/2 3:28:25 网站建设 项目流程
/** * @param {number[]} nums * @return {number} */varlongestConsecutive=function(nums){letidx=newSet(nums);letlen=0;for(letxofidx){if(idx.has(x-1))continue;//确保x一定是这个序列的第一个lety=x+1;while(idx.has(y))y++;len=Math.max(len,y-x);//优化if(2*len>idx.size)break;}returnlen;}

核心思想:哈希集合

if(idx.has(x-1))continue;//核心核心核心

算法细节:for循环遍历的一定要是新的哈希集合,不能是原数组nums,否则会重复查找非常多次

API 调用: Set


语法细节: size和length

数据类型属性说明
Arraylength元素数量
Setsize元素数量
Mapsize键值对数量
Stringlength字符数量

时间复杂度分析: O(N)
虽然这是一个"循环嵌套",但其实这是线性查找,因为每个元素只被访问一次,"核心"的那一步时间复杂度是O(1),这最关键的,确保不会重复查找

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询