128.最长连续序列
小于 1 分钟
128.最长连续序列
/*
* @lc app=leetcode.cn id=128 lang=typescript
*
* [128] 最长连续序列
*/
// @lc code=start
function longestConsecutive(nums: number[]): number {
if (nums.length == 0) return 0;
// 对数组排序
nums.sort((a, b) => a - b);
// 定义左右索引
let l = 0;
// 当前最长序列长度
let maxLength = Infinity;
for (let r = 0; r < nums.length; r++) {
if (nums[r + 1] == nums[r]) {
// 剔除相同数据
nums.splice(r, 1);
r--;
} else if (nums[r + 1] != nums[r] + 1) {
maxLength = Math.max(r - l, maxLength == Infinity ? 0 : maxLength);
l = r + 1;
}
}
console.log(maxLength + 1);
return maxLength + 1;
}
// longestConsecutive([1, 2, 0, 1]);
longestConsecutive([0,3,7,2,5,8,4,6,0,1]);
// @lc code=end
Loading...
