遍历并计算最长连续子序列 初始化两个变量:max 用于记录当前找到的最长连续序列的长度,len 用于记录当前连续序列的长度 从数组的第二个元素开始遍历,判断当前数字与前一个数字的差异: 如果当前数字和前一个数字相差 1,说明是连续的序列,可以增加当前连续序列的长度(len++) 如果当前数字和前一个数字不相差 1,说明连续序列断开了,我们需要更新 max 为当前最大值,并将 len 重置为 1,表示重新开始计算新的连续序列 最后,遍历结束后,还需要检查最后的 len 是否是最长的连续序列,确保返回正确的最大值
实现
varlongestConsecutive=function(nums){if(!nums.length)return0// 排序const newNums = nums.sort((a, b)=> a - b);let max =1;let len =1;for(let i =1; i < newNums.length; i++){if(nums[i]=== nums[i -1]){continue;}elseif(nums[i -1]=== nums[i]-1){
len++}else{// 不连续,重制
max = Math.max(len, max)
len =1;}}return Math.max(max, len)};