Какие алгоритмические задачи с собеседований я применял на коммерческих проектах?
Вас тоже бесит, когда на собеседованиях дают live-coding задачи, которые не используются в коммерческой разработке?
Я помню, как интервьюер дал мне задачу написать кастомный Stack с нуля, уверяя, что у них такая реализация используется в production коде. Когда я принял оффер, устроился в компанию и получил доступ к коду, то увидел... Что никакой кастомной реализации стека там нет.
Но на самом деле, многие задачи на алгоритмы применяются в коммерческой разработке. Расскажу вам про кейсы с моих мест работы.
1️⃣ mergeIntervals
Разбор решения задачи есть на моем YouTube.
Практический кейс был такой. Необходимо нарисовать график на основе данных с бэка. Бэк присылает массив объектов с параметрами dateStart, dateEnd и др. По оси Y идет цена в RUB, по оси X - интервалы дат.
Дело в том, что некоторые интервалы с датами пересекались. Не было смысла отображать отдельный столбец в графике, когда можно было схлопнуть несколько интервалов в один.
2️⃣ findClosestNumber (поиск ближайшего числа в массиве)
Разбор решения задачи есть в моем приватном ТГ канале.
Проект связан с оформлением кредитов онлайн. В интерфейсе приложения есть слайдер с инпутом для ввода суммы кредита. Кредит можно взять на конкретные суммы (например, 10_000, 30_000, 50_000, 100_000, 200_000 и тд). То есть если пользователь вводит в инпут число 47500, то его нужно заменить на ближайшее значение (в данном примере 50_000).
3️⃣ Observer / EventEmitter
Разбор реализации EventEmitter есть в моем приватном ТГ канале.
Проект все тот же, оформление кредитов онлайн. На клиенте есть форма из 20+ полей, где пользователю нужно заполнить персональные данные для регистрации кредита. У некоторых полей есть рядом блок с процентами (например, 5%, 8%, 20%). И вверху страницы расположена шкала от 0 до 100%. Если правильно заполняешь конкретное поле, то прибавляется процент к общей шкале.
Такой UI/UX мотивирует пользователя заполнять форму из большого количества полей.
Первое решение, которое приходит в голову, использовать useContext из React. Но его главный недостаток - лишние ререндеры. Зачем нам ререндерить всю форму при обновлении процентов шкалы, если можно воспользоваться паттернами EventEmitter или Observer?
В данном примере я применил Observer. Я повесил слушатель observer.subscribe в компоненте со шкалой процентов. А в каждом инпуте при валидном вводе значения делал observer.emit. Таким образом, ререндерилась только компонента со шкалой процентов.
----------
Конечно, примеров использования алгоритмических задач в моей практике было намного больше. Накидайте реакций, если вам понравился пост, сделаю еще одну часть.
А вы какие алгоритмические задачи с собеседований используете в коммерческой разработке? 🤔
Post #112
1.68K
- 🔥 14
- ❤ 5