Сводка диапазонов

Легкая
47%
Python 3.12JavaScriptGo 1.17.13Java 21C#C++

Дан отсортированный по возрастанию массив уникальных целых чисел nums.

Необходимо вернуть наименьший отсортированный список диапазонов, который в точности покрывает все числа в массиве. Это значит, что каждый элемент из nums должен попадать ровно в один из диапазонов, и при этом диапазоны не должны включать чисел, которых нет в nums.

Каждый диапазон [a, b] в результирующем списке должен быть отформатирован следующим образом:

  • "a-b", если a != b (диапазон содержит более одного числа).
  • "a", если a == b (диапазон состоит из одного числа).

Пример 1:

Ввод: nums = [0,1,2,4,5,7]
Вывод: ["0-2","4-5","7"]

Пояснение:

Диапазоны формируются следующим образом:
[0,1,2] образуют непрерывный диапазон 0-2.
[4,5] образуют непрерывный диапазон 4-5.
[7] стоит отдельно, поэтому формат просто 7.

Пример 2:

Ввод: nums = [0,2,3,4,6,8,9]
Вывод: ["0","2-4","6","8-9"]

Пояснение:

[0] — одиночное число.
[2,3,4] — диапазон 2-4.
[6] — одиночное число.
[8,9] — диапазон 8-9.

Ограничения:

  • 0 ≤ nums.length ≤ 20
  • -2³¹ ≤ nums[i] ≤ 2³¹ - 1
  • Все элементы уникальны.
  • Массив отсортирован по возрастанию.