G
enby!

Всё про Binary Search. Тотальный гайд для собеса в IT и Leetcode алгоритмов (уникальный из практики)

Telegram Post: https://t.me/koduryem/10
Telegram: https://t.me/koduryem
Leetcode: https://leetcode.com/idfumg
GitHub: https://github.com/idfumg
C++: https://gist.github.com/idfumg/f8ae98...
Py: https://gist.github.com/idfumg/c27ba3...
Go: https://gist.github.com/idfumg/34e3c5...
Все, кто частенько сталкивался с проблемой адекватного объяснения Binary Search с упором на практику, а не "скопировать код с рандомного туториала, написать простенький поиск, добавить, что ты сеньор и закончить на этом." :) А когда начинаешь применять на практике, оказывается, что условия окончания цикла могут меняться. То это less or equal, то less, то not equal и т.д. То lo less or equal hi, то lo less hi, то lo + 1 less hi. Дебажил бесконечные циклы, потому что lo или hi вычисляются в одно и то же значение. В таких случаях обычно начинается что-то на сеньорно-великом "алгоритмы херня и не нужны нигде". Этого всего можно легко избежать и забыть. В видео я описал максимально подробно единственный универсальный механизм для Binary Search и все необходимые паттерны, которые можно встретить на практике - в жизни, на Leetcode, на работе. То, к чему я пришел со временем. Теперь это не какой-то странный алгоритм для дебаггинга, а красивый и приятный способ решать разного рода задачи. Привел примеры этого шаблона на просто огромном количестве задач от easy до hard. Задачи очень детально не стал объяснять, но видно, что паттерны одни и те же, шаблон один и тот же; главное и единственное теперь - увидеть, как можно поделить наш scope и декомпозировать задачу, а не воевать с имплементацией Binary Search. Попытайтесь увидеть мой ход мыслей и решить самостоятельно. Так вы очень быстро научитесь их решать by practice. Встречается Binary Search чрезвычайно часто. Усилий приложил довольно много; надеюсь, кому-то это причинит какую-то пользу :) Алгоритмы - это интересно и не сложно. Пробуем решать задачи на Leetcode, разговариваем, наглядно рисуем решения, узнаем что-то новое. Порешать: https://leetcode.com/problems/search-...
https://leetcode.com/problems/find-fi...
https://leetcode.com/problems/check-i...
https://leetcode.com/problems/find-sm...
https://leetcode.com/problems/arrangi...
https://leetcode.com/problems/find-mi...
https://leetcode.com/problems/search-...
https://leetcode.com/problems/find-pe...
https://leetcode.com/problems/koko-ea...
https://leetcode.com/problems/single-...
https://leetcode.com/problems/cutting...
https://leetcode.com/problems/missing...
https://leetcode.com/problems/path-wi...
https://leetcode.com/problems/minimum...
https://leetcode.com/problems/kth-sma...
https://leetcode.com/problems/search-...
https://leetcode.com/problems/find-mi...
#c++ #python #go #golang #binarysearch #programming #data_structures #algorithms #computerscience

Смотрите также