---
round: 1
ticket_no: 6
source_no: 4
slug: summary-ranges
topic: Two Pointers
difficulty: Easy
leetcode_id: 228
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 06 — Summary Ranges

## Условие (как предъявлено)

Дан отсортированный массив уникальных целых чисел `nums`. Вернуть список диапазонов, покрывающих все числа массива, в формате `"a->b"` — если диапазон содержит больше одного числа, или `"a"` — если одно.

```
Input:  nums = [0,1,2,4,5,7]      →  ["0->2","4->5","7"]
Input:  nums = [0,2,3,4,6,8,9]    →  ["0","2->4","6","8->9"]
```

Constraints: `0 <= n <= 20`.

## Ответ

> Здесь получается, у нас есть текущий, как бы мы наполняем результат диапазонами. Вот у нас есть текущий диапазон, начинается с первого элемента, и мы добавляем туда следующий элемент. То есть, у нас есть первый элемент этого диапазона и как бы второй. Сначала он равен самому себе, дальше мы смотрим, а следующий элемент он подряд идёт или нет. Если он идёт подряд, то мы его добавляем в этот эпизод. Теперь у нас есть начало и конец. То есть, ну тоже скользящее окно. Как только мы встретили элемент, который не подряд, значит, мы закрываем диапазон, добавляем его в результат и инициируем новый диапазон, который начинается и заканчиваеся на новом элементе. И идём дополняем его. И останавливаемся в конце.

## Разбор

**Что верно:** текущий диапазон с началом и концом, проверка последовательности nums[i+1] == nums[i] + 1, закрытие диапазона по разрыву и старт нового — верно.

**Что упущено и ошибки:** не сказано, что последний диапазон нужно закрыть после цикла (самая частая ошибка); формат «a» против «a->b» подразумевается, но не проговорён; пустой массив (по ограничениям n может быть 0) должен давать [].

**Эталонная идея:** один проход: start фиксирует начало; как только nums[i+1] != nums[i] + 1 — закрыть диапазон и start = i + 1; после цикла закрыть последний.

**Сложность:** время O(n), память O(1) без учёта результата

**Критерии:** идея ✅ · структура данных ✅ · сложность ❌ · граничные случаи ⚠️


**Разбор задачи:** [`../../algo-solutions/01-must-have/01-two-pointers/04-summary-ranges.md`](../../algo-solutions/01-must-have/01-two-pointers/04-summary-ranges.md)
