js(89)~[128] 最长连续序列

116 阅读1分钟

力扣本题传送门 image.png 这题有一个点儿,就是最长序列,中间只能相隔1,不能是其他的比如2,4,6,8等,在这个大前提下思考这个问题,最起码助教讲的也就是官方题解给出来的答案我能看懂.

/*
 * @lc app=leetcode.cn id=128 lang=javascript
 *
 * 
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {number}
 */
var longestConsecutive = function (nums) {
	let num_set = new Set();
	// 把数组nums中 不重复的数字加入num——set中
	for (const num of nums) {
		num_set.add(num)
	}
	let longStreak = 0;
	for (const num of nums) {
		if (!num_set.has(num - 1)) {
			let currentNum = num;
			let currentStreak = 1;
			while (num_set.has(currentNum + 1)) {
				currentNum++;
				currentStreak++;
			}
			longStreak = Math.max(longStreak, currentStreak)
		}
	}
	return longStreak
};