128.最长连续序列

时游小于 1 分钟LeetCode

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

上次编辑于:
贡献者: 15327360835
Loading...