🙆

228. Summary Ranges

に公開

あなたには、昇順にソートされた重複のない整数配列 nums が与えられます。

区間 [a, b] とは、a から b までのすべての整数(両端を含む)からなる集合のことです。

この配列のすべての数を正確にカバーする、最小のソートされた区間リストを返してください。
つまり、nums の各要素はちょうど1つの区間に含まれており、また**nums に含まれない整数が区間に含まれることはない**ようにしてください。

リスト内の各区間 [a, b] は、次のように出力してください:

  • a != b の場合は "a->b" の形式で出力
  • a == b の場合は "a" の形式で出力

例 1:

入力: nums = [0,1,2,4,5,7]
出力: ["0->2", "4->5", "7"]
説明: 区間は次の通りです:

  • [0,2]"0->2"
  • [4,5]"4->5"
  • [7,7]"7"

例 2:

入力: nums = [0,2,3,4,6,8,9]
出力: ["0", "2->4", "6", "8->9"]
説明: 区間は次の通りです:

  • [0,0]"0"
  • [2,4]"2->4"
  • [6,6]"6"
  • [8,9]"8->9"

制約:

  • 0 <= nums.length <= 20
  • -2³¹ <= nums[i] <= 2³¹ - 1
  • nums のすべての値は一意(ユニーク)です。
  • nums は昇順にソートされています。
GitHub GistのページURLを指定してください

Discussion