Logo
TGCATALOG
Catalog Collections Blog
PHP | LeetCode - тесты и собесы

PHP | LeetCode - тесты и собесы

Ресурс с тестами LeetCode по PHP, вопросами собеседований и вакансиями. Идеально для подготовки к работе разработчиком.

No ratings
26
09.09.2026
26
09.09.2026
No ratings
26
09.09.2026
Safe redirect via bot
О канале

Ресурс с тестами LeetCode по PHP, вопросами собеседований и вакансиями. Идеально для подготовки к работе разработчиком.

Подписчиков 1,352
Тематика Technology
Язык English
Ссылка t.me/easy_php_task

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description
Этот Telegram-ресурс посвящен подготовке к собеседованиям по PHP с использованием задач LeetCode. Здесь собраны актуальные тесты, которые помогут освоить ключевые алгоритмы и структуры данных на языке PHP. 👨‍💻 Раздел с вопросами собеседований содержит типичные задачи, которые задают на интервью в...Read More ↓Description ↑

Этот Telegram-ресурс посвящен подготовке к собеседованиям по PHP с использованием задач LeetCode. Здесь собраны актуальные тесты, которые помогут освоить ключевые алгоритмы и структуры данных на языке PHP. 👨‍💻

Раздел с вопросами собеседований содержит типичные задачи, которые задают на интервью в IT-компаниях. Пользователи найдут разборы решений, примеры кода и советы по оптимизации. Это отличный способ попрактиковаться перед реальным собеседованием. 📚

Кроме того, публикуются вакансии для PHP-разработчиков. Ресурс помогает не только учиться, но и находить работу в сфере веб-разработки. Регулярные обновления обеспечивают свежий контент для всех уровней — от junior до senior.

Latest posts

PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 820. Short Encoding of Words Сложность: medium Допустимым кодированием массива слов является любая опорная строка s и массив индексов indices, такие что: words.length == indices.length Опорная строка s заканчивается символом '#'. Для каждого индекса indices[i], подстрока строки s, начинающаяся с indices[i] и заканчивающаяся (но не включительно) следующим символом '#', равна words[i]. Дан массив слов, верните длину самой короткой возможной опорной строки s для любого допустимого кодирования слов. Пример: Input: words = ["time", "me", "bell"] Output: 10 Explanation: A valid encoding would be s = "time#bell#" and indices = [0, 2, 5]. words[0] = "time", the substring of s starting from indices[0] = 0 to the next '#' is underlined in "time#bell#" words[1] = "me", the substring of s starting from indices[1] = 2 to the next '#' is underlined in "time#bell#" words[2] = "bell", the substring of s starting from indices[2] = 5 to the next '#' is underlined in "time#bell#" 👨💻 Алгоритм: 1⃣Поскольку слово имеет не более 6 собственных суффиксов (так как words[i].length $_) { $length += strlen($word) + 1; } return $length; } } Ставь 👍 и забирай 📚 Базу знаний
PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 1473. Paint House III Сложность: hard Есть ряд из m домов в маленьком городе, каждый дом должен быть покрашен одним из n цветов (обозначены от 1 до n), некоторые дома, которые были покрашены прошлым летом, не должны быть перекрашены. Соседство — это максимальная группа непрерывных домов, которые покрашены в один и тот же цвет. Например: дома = [1,2,2,3,3,2,1,1] содержат 5 соседств [{1}, {2,2}, {3,3}, {2}, {1,1}]. Дан массив домов, матрица m x n стоимости и целое число target, где: houses[i]: цвет дома i, и 0, если дом ещё не покрашен. cost[i][j]: стоимость покраски дома i в цвет j + 1. Верните минимальную стоимость покраски всех оставшихся домов таким образом, чтобы было ровно target соседств. Если это невозможно, верните -1. Пример: Input: houses = [0,0,0,0,0], cost = [[1,10],[10,1],[10,1],[1,10],[5,1]], m = 5, n = 2, target = 3 Output: 9 Explanation: Paint houses of this way [1,2,2,1,1] This array contains target = 3 neighborhoods, [{1}, {2,2}, {1,1}]. Cost of paint all houses (1 + 1 + 1 + 1 + 5) = 9. 👨💻 Алгоритм: 1⃣Инициализация и базовые случаи: Создайте класс Solution и массив memo для мемоизации результатов. Установите MAX_COST как максимально возможную стоимость плюс 1. Создайте метод findMinCost, который проверяет базовые случаи: - если все дома пройдены, возвращайте 0, если количество соседств равно target, иначе возвращайте MAX_COST. - если количество соседств больше target, возвращайте MAX_COST. Если результат уже вычислен, возвращайте его из memo. 2⃣Рекурсивное вычисление минимальной стоимости: Если дом уже покрашен, обновите количество соседств и вызовите рекурсивный метод для следующего дома. Если дом не покрашен, попробуйте покрасить его в каждый возможный цвет, обновите количество соседств и вызовите рекурсивный метод для следующего дома. Храните минимальную стоимость. 3⃣Метод minCost: Запустите метод findMinCost с начальными параметрами и верните результат. Если результат равен MAX_COST, верните -1. 😎 Решение: class Solution { private $MAX_COST = 1000001; private $memo = []; private function findMinCost($houses, $cost, $targetCount, $currIndex, $neighborhoodCount, $prevHouseColor) { if ($currIndex == count($houses)) { return $neighborhoodCount == $targetCount ? 0 : $this->MAX_COST; } if ($neighborhoodCount > $targetCount) { return $this->MAX_COST; } $key = "$currIndex,$neighborhoodCount,$prevHouseColor"; if (isset($this->memo[$key])) { return $this->memo[$key]; } $minCost = $this->MAX_COST; if ($houses[$currIndex] != 0) { $newNeighborhoodCount = $neighborhoodCount + ($houses[$currIndex] != $prevHouseColor ? 1 : 0); $minCost = $this->findMinCost($houses, $cost, $targetCount, $currIndex + 1, $newNeighborhoodCount, $houses[$currIndex]); } else { for ($color = 1; $color findMinCost($houses, $cost, $targetCount, $currIndex + 1, $newNeighborhoodCount, $color); $minCost = min($minCost, $currCost); } } $this->memo[$key] = $minCost; return $minCost; } public function minCost($houses, $cost, $m, $n, $target) { $answer = $this->findMinCost($houses, $cost, $target, 0, 0, 0); return $answer == $this->MAX_COST ? -1 : $answer; } } Ставь 👍 и забирай 📚 Базу знаний
PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 861. Score After Flipping Matrix Сложность: medium Вам дана бинарная матрица grid размером m x n. Ход состоит из выбора любой строки или столбца и переключения каждого значения в этой строке или столбце (т.е. изменение всех 0 на 1, и всех 1 на 0). Каждая строка матрицы интерпретируется как двоичное число, и счёт матрицы — это сумма этих чисел. Верните наивысший возможный счёт после выполнения любого количества ходов (включая ноль ходов). Пример: Input: grid = [[0,0,1,1],[1,0,1,0],[1,1,0,0]] Output: 39 Explanation: 0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15 = 39 👨💻 Алгоритм: 1⃣Инициализируйте переменные: m и n для количества строк и столбцов в grid, score для хранения максимального счёта матрицы. Пройдитесь по первому столбцу матрицы. Если элемент равен 0, переверните всю строку. 2⃣Пройдитесь по матрице от второго до последнего столбца. Для каждого столбца посчитайте количество нулей (countZero). Если количество нулей больше, переверните весь столбец. 3⃣Пройдитесь по модифицированной матрице. Для каждого элемента добавьте его к score, сдвинув влево на значение текущего столбца. Верните score, который хранит наивысший возможный счёт матрицы. 😎 Решение: class Solution { function matrixScore($grid) { $m = count($grid); $n = count($grid[0]); for ($i = 0; $i < $m; $i++) { if ($grid[$i][0] == 0) { for ($j = 0; $j < $n; $j++) { $grid[$i][$j] ^= 1; } } } for ($j = 1; $j < $n; $j++) { $countZero = 0; for ($i = 0; $i < $m; $i++) { if ($grid[$i][$j] == 0) { $countZero++; } } if ($countZero > $m / 2) { for ($i = 0; $i < $m; $i++) { $grid[$i][$j] ^= 1; } } } $score = 0; for ($i = 0; $i < $m; $i++) { for ($j = 0; $j < $n; $j++) { if ($grid[$i][$j] == 1) { $score += 1
PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 932. Beautiful Array Сложность: medium Массив nums длины n красив, если: nums является перестановкой целых чисел в диапазоне [1, n]. Для каждого 0 2 * $x - 1, construct(($n + 1) / 2)); $even = array_map(fn($x) => 2 * $x, construct($n / 2)); return array_merge($odd, $even); } Ставь 👍 и забирай 📚 Базу знаний
PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 1094. Car Pooling Сложность: medium Есть автомобиль с пустыми сиденьями емкостью capacity. Автомобиль движется только на восток (то есть он не может повернуть и ехать на запад). Дан целочисленный параметр capacity и массив поездок trips, где trips[i] = [numPassengersi, fromi, toi] указывает, что на i-й поездке numPassengersi пассажиров должны быть забраны на позиции fromi и высажены на позиции toi. Позиции заданы как количество километров на восток от начальной точки автомобиля. Верните true, если возможно забрать и высадить всех пассажиров для всех указанных поездок, или false в противном случае. Пример: Input: trips = [[2,1,5],[3,3,7]], capacity = 4 Output: false 👨💻 Алгоритм: 1⃣Простая идея заключается в том, чтобы пройти от начала до конца и проверить, превышает ли фактическая вместимость capacity. 2⃣Чтобы узнать фактическую вместимость, нужно просто знать изменение количества пассажиров в каждый момент времени. 3⃣Мы можем сохранить изменения количества пассажиров в каждый момент времени, отсортировать их по меткам времени и, наконец, пройтись по ним, чтобы проверить фактическую вместимость. 😎 Решение: class Solution { function carPooling($trips, $capacity) { $timestamp = []; foreach ($trips as $trip) { $timestamp[$trip[1]] = ($timestamp[$trip[1]] ?? 0) + $trip[0]; $timestamp[$trip[2]] = ($timestamp[$trip[2]] ?? 0) - $trip[0]; } ksort($timestamp); $usedCapacity = 0; foreach ($timestamp as $change) { $usedCapacity += $change; if ($usedCapacity > $capacity) { return false; } } return true; } } Ставь 👍 и забирай 📚 Базу знаний
PHP | LeetCode - тесты и собесы
PHP | LeetCode - тесты и собесы
🔒Открыть пост
и посмотреть медиа
Задача: 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; } Ставь 👍 и забирай 📚 Базу знаний
PHP | LeetCode - тесты и собесы
Subscriber dynamics
+0.1% last 30 days
Current
1,352
Month ago
1,351
Average growth
+0 / day
Updated
3 hours ago

Reviews for channel PHP | LeetCode - тесты и собесы

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

A channel about racing, speed and motorsport. Adrenaline, victories and bright moments of the world of auto racing.

Channel

Space for Mindful Art and Solidarity, Season art4sisterhood.

Channel

Micro-ERP system forstandalonePharmacies. Automation of accounting, sales and inventory management.

Channel
Switch to Light Theme
Home Catalog Collections Blog Login