tgoop.com/dev_easy_notes/500
Last Update:
Понедельник. Схуяли ли тишина такая? Ну-ка проснулись! Сейчас я продолжу душнить про алгособесы.
В дополнение к шаблонам я хотел накидать ещё пару своих авторских советов, которые могут пригодиться.
Не пытайтесь делать всё в одном цикле. Есть лайфхак, который работает для многих задач: разделите задачу на две части. Одну часть решаете в одном цикле, вторую — в другом. Сложность всё равно останется O(n), но решение может стать в разы проще. Многие погибли на пути построения жутких условий, чтобы сделать всё "красиво" в одном проходе.
Иногда лучше идти не с начала, а с конца массива. Для части задач это избавляет от необходимости в дополнительной памяти.
Набрасывайте тест-кейсы до начала решения. 90% кандидатов, едва взглянув на условие, сразу бросаются в бой. Где-то на середине выясняется, что задачу они поняли неправильно, а ещё есть пара корнер-кейсов, из-за которых всё ломается...
Лучше потратить немного времени на проработку кейсов (прям пишите вот это на вход, это на выход, чтобы все было перед глазами) и требований перед тем, как писать код — это реально может спасти. Кстати, и в работе отличный совет!
Пишите алгоритмы на Python. Я реально считаю, что Python создан для алгоритмической секции. Во-первых, код выглядит невероятно просто, как будто описание алгорима. Во-вторых, куча конструкций языка просто невероятно удобны. Каждый раз жалко JS-разрабов, которые дублируют строку через цикл. В Python это один оператор.
Повторите школьную программу. Например формулу суммы последовательностей, есть прям пласт задач где это может все упросить в разы. Из алгоритмов, которые реально стоит выучить — бинарный поиск. Он простой и при этом есть прям много задач на его вариацию.
BY Dev Easy Notes
Share with your friend now:
tgoop.com/dev_easy_notes/500