Как запомнить индекс и состояние переменных?

Aurora Lights
FAANG_interview
Published in
1 min readDec 29, 2020

Я вот индексы путаю постоянно и крайне плохо держу в памяти состояние переменных 😥 Штуки вроде того, что если у тебя в цикле есть i — 1, то как быть с нулевым элементом или если надо сделать pivot — в какую сторону надо округлять при делении на два.

У кого были проблемы с этой «мелкой моторикой»? Как справлялись?

3 совета:

1. Старайся выбирать самые интуитивные индексы.

Если вершины в графе нумеруются с единицы, то нумеруй с единицы. Так проще писать. Добавить один ненужный элемент в массив — не страшно.

Если будешь каждый раз вычитать единицу то где-то забудешь.

2. Используй полуинтервалы, где уместно.

Например бинарый поиск удобно писать в полуинтервалах, поддеживая границы [l, r). Круглая скобка значит, что r не включается.

Тогда подотрезок разбивается на [l, m) и [m, r)

3. Запомни работу for и while в деталях. Попробуй написать for через while и наоборот. Для многие не помнят, что i=n в конце выполнения for (int i = 0; i < n; i++).

Вот лекция Андрея Станкевича про двоичный поиск:

Сортировка и поиск

Лучше лекции про двоичный поиск не видел.

Если страдаете когда пишете двоичный поиск, то посмотрите.

Очень рекомендую почитать, как объясняет бинарный поиск вот этот парень. 1 раз поймешь, больше с бинпоиском проблем вообще не будет.

Если уж зашла речь про понимание бинарного поиска, то я бы посоветовал прочитать туториал на топкодере:

Community — Competitive Programming — Competitive Programming Tutorials — Binary Search

--

--

Aurora Lights
FAANG_interview

When you aim for perfection you discover it’ s a moving target. I’m chasing it. #digitalnomad