最長連続シーケンス
整数のunsorted配列が与えられた場合、最長の連続した要素シーケンスの長さを返します.
O(n)時間で実行するアルゴリズムを記述する必要があります.
O(n)時間で実行するアルゴリズムを記述する必要があります.
Input: nums = [100,4,200,1,3,2]
Output: 4
Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4.
var longestConsecutive = function (nums) {
let num_set = new Set(nums);
let longestStreak = 0;
for (let num of nums) {
if (!num_set.has(num - 1)) {
let currentNum = num;
let currentStreak = 1;
while (num_set.has(currentNum + 1)) {
currentNum += 1;
currentStreak += 1;
}
longestStreak = Math.max(longestStreak, currentStreak);
}
}
return longestStreak;
}
時間複雑性:O(n)Reference
この問題について(最長連続シーケンス), 我々は、より多くの情報をここで見つけました https://dev.to/styluso7/longest-consecutive-sequence-2bo0テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol