Menu
CoddyTech

Longest Consecutive Sequence

ふつうハッシュpython iconjava iconcpp iconc iconjs icon+10

整数配列 nums が順不同で与えられます。連続するシーケンスとは、nums 内のどこかにそれぞれ存在する x、x+1、x+2 などの値の集まりです。最長の連続シーケンスの長さを返してください。複数回出現する値も1回として数えます。

関数

longestConsecutive(nums: integer-array) → integer
numsinteger-array
整数は順不同で、重複可
戻り値integer
nums に含まれる連続した値の最長連続列の長さ

制約

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • 値は重複していてもかまいません。配列内の位置は重要ではなく、どの値が含まれているかだけが重要です。

例

入力
nums = [40, 4, 39, 1, 3, 2, 41]
出力
4
説明
1、2、3、4はすべて含まれており、配列の中に散らばっているにもかかわらず、4つ連続しています。もう一方の連続した値39から41までは、3つの値しかありません。
challenge icon

発展問題

値が一つずつ届き、そのたびにこれまでで最も長い連続区間を報告しなければならないとします。値ごとに平均 O(1) 時間で答えを最新の状態に保てますか?

コードをリセット
def longestConsecutive(nums):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

nums = [40, 4, 39, 1, 3, 2, 41]

期待される出力

4