Задача "Перемещение нулей (MoveZeros)". Решение
Друзья, всем привет!
Во вторник опубликовал не типичную задачу для собеседования на позицию Oracle Developer. Однако, такие задачи очень часто встречаются на позиции Front/Backend-разработчиков.
Как это происходит на собеседовании
🔹 Вы либо шарите экран, либо подключаетесь к online IDE, в которой есть подсветка синтаксиса. Чаще всего, скомпилировать код возможности нет. Автоподсказок то же (хотя встречались с наличием).
🔹 У вас есть ограниченное количество времени (30м-1ч) на решение задачи.
🔹 От вас хотят услышать размышления вслух хода решения.
🔹 Требуется быстрое (O) и низкое, по затратам памяти, решение.
Представьте, что вам дали подобную задачу (как в посте вторника), ограничили 30 минутами. При этом, написать алгоритм без ошибок вы должны на "листке бумаги", без каких-либо запусков, никто не даст отлаживать код. Фактически задачу необходимо решить в уме.
А как насчет написать дерево и пройтись по нему? найти его максимальную глубину? Или инвертировать односвязный список? Да, то, что старательно забыто после окончания универа 😊
К чему я веду
Необходим определенный навык и тренировки для выполнения подобного рода заданий.
Для этого есть специальные площадки, где собраны подобные хитрые задачки разнесенные по уровням сложности. Например, leetcode.
Недавно наткнулся на двадцать паттернов при решении алгоритмических задач. Может кому-то зайдет.
Задача вторника может быть решена разными способами
Когда она мне попалась на собесе, я решил таким алгоритмом (на Java, конечно). В целом, это удовлетворило интервьювера. Я не утверждаю, что нет более идеального решения, вполне возможно, но в стрессовой ситуации за 30 минут родилось именно это.
Ребята в чатике накидали довольно много разных решений 🔥
Если такой тип задач интересен, могу публиковать время от времени 😉
Обсудить в чатике 💬
#решениезадачи #leetcode
Oracle Developer