и посмотреть медиа
PHP | LeetCode - тесты и собесы
и посмотреть медиа
Ресурс с тестами LeetCode по PHP, вопросами собеседований и вакансиями. Идеально для подготовки к работе разработчиком.
Ресурс с тестами LeetCode по PHP, вопросами собеседований и вакансиями. Идеально для подготовки к работе разработчиком.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Этот Telegram-ресурс посвящен подготовке к собеседованиям по PHP с использованием задач LeetCode. Здесь собраны актуальные тесты, которые помогут освоить ключевые алгоритмы и структуры данных на языке PHP. 👨💻
Раздел с вопросами собеседований содержит типичные задачи, которые задают на интервью в IT-компаниях. Пользователи найдут разборы решений, примеры кода и советы по оптимизации. Это отличный способ попрактиковаться перед реальным собеседованием. 📚
Кроме того, публикуются вакансии для PHP-разработчиков. Ресурс помогает не только учиться, но и находить работу в сфере веб-разработки. Регулярные обновления обеспечивают свежий контент для всех уровней — от junior до senior.
Задача: 752. Open the Lock Сложность: medium Перед вами замок с 4 круглыми колесами. Каждое колесо имеет 10 слотов: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'. Колеса могут свободно вращаться и оборачиваться: например, мы можем повернуть "9" так, чтобы получился "0", или "0" так, чтобы получился "9". Каждый ход состоит из поворота одного колеса на один слот. Изначально замок начинается с '0000', строки, представляющей состояние 4 колес. Вам дан список тупиков, то есть если замок отобразит любой из этих кодов, колеса замка перестанут вращаться, и вы не сможете его открыть. Учитывая цель, представляющую значение колес, которое позволит отпереть замок, верните минимальное общее количество оборотов, необходимое для открытия замка, или -1, если это невозможно. Пример: Input: deadends = ["0201","0101","0102","1212","2002"], target = "0202" Output: 6 👨💻 Алгоритм: 1⃣Используйте алгоритм BFS для поиска кратчайшего пути от начального состояния '0000' до целевого состояния, избегая тупиков. Инициализируйте очередь с начальным состоянием '0000' и начальным шагом 0. Используйте множество для отслеживания посещенных состояний, чтобы избежать повторного посещения одного и того же состояния. 2⃣Для каждого состояния в очереди: Проверьте все возможные переходы на следующий шаг, вращая каждое колесо на +1 и -1. Если найденное состояние является целевым, верните количество шагов. Если найденное состояние не является тупиком и не было посещено ранее, добавьте его в очередь и отметьте как посещенное. 3⃣Если очередь пуста и целевое состояние не найдено, верните -1. 😎 Решение: function openLock($deadends, $target) { function neighbors($node) { $res = []; for ($i = 0; $i < 4; $i++) { $x = intval($node[$i]); for ($d = -1; $d true]; while (!empty($queue)) { list($node, $steps) = array_shift($queue); if ($node === $target) return $steps; if (isset($dead[$node])) continue; foreach (neighbors($node) as $neighbor) { if (!isset($visited[$neighbor])) { $visited[$neighbor] = true; $queue[] = [$neighbor, $steps + 1]; } } } return -1; } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Что знать разработчику о LLM: продукты, фреймворки, реальные кейсы и pet-проекты.
Объяснения физических явлений в космосе: спин электрона и многое другое.