Все темы
3

Список: ряд пронумерованных коробок

Бесплатно

1. Задача

В одной коробке лежит одна вещь. Но одна вещь у тебя бывает редко. Есть список покупок, ряд фотографий, очки в игре. Тебе нужно держать много значений вместе и при этом быстро находить любое из них.

2. Ряд пронумерованных коробок

Список (его ещё называют массивом) это ряд коробок, которые стоят вплотную друг к другу и по порядку. У каждой коробки есть номер позиции, поэтому можно указать ровно на одну из них. Номер позиции ещё называют индексом.

Одно удивляет новичков: позиции считают с 0, а не с 1. Первая коробка стоит на позиции 0, вторая на позиции 1, и так далее. Сначала это непривычно, но через день-другой привыкаешь.

7 3 9 2 6 0 1 2 3 4

3. Чтение по позиции

На коробку указывают по её номеру. list[0] это первое значение (на картинке выше это 7). list[2] это третье значение (9). Квадратные скобки значат «коробка на этой позиции». У каждой коробки есть номер, поэтому компьютер сразу открывает нужную и не перебирает по дороге остальные.

4. Твоя очередь (без кода)

Возьмём ряд с картинки: [7, 3, 9, 2, 6].

  • Чему равно list[1]? Ответ: 3 (вторая коробка).
  • Чему равно list[4]? Ответ: 6 (пятая, последняя коробка).
  • Сколько всего коробок и какая позиция у последней? Ответ: коробок 5, последняя позиция 4. Последний номер всегда на единицу меньше количества коробок. Ошибка ровно на эту единицу стоит за огромным числом настоящих багов.

5. Главное

Список это много значений в пронумерованном ряду. Любое из них достают по позиции. Счёт идёт с 0, поэтому последняя позиция на единицу меньше длины списка. Почти всё, что ждёт тебя дальше (поиск нужного значения, сортировка по порядку и многое другое), это разные способы ходить по этим коробкам.

На LeetCode

Задачи на LeetCode пока нет, потому что код в этом уроке ещё не пишется. Почти каждая лёгкая задача на LeetCode даёт тебе массив, и чтение по номеру ячейки с нуля пригодится уже в уроках 7 и 10.

Ты читаешь как гость

Все бесплатные уроки открыты: читай и запускай. Бесплатный аккаунт отмечает пройденные уроки и показывает, где ты в курсе.

Мы используем необходимые куки для работы сайта (вход и язык). Если ты согласишься, мы также загрузим Google Analytics, чтобы видеть, какие страницы читают, и Google reCAPTCHA для защиты форм обратной связи и сообщений об ошибке от спама. Политика конфиденциальности