Публичное собеседование по LeetCode (Виктор Карпов, Арсений Трушин)
HTML-код
- Опубликовано: 27 ноя 2024
- #leetcode #faang #slidingwindow #priorityqueue
Публичное собеседование по LeetCode, звучит как челендж. LeetCode это важная часть собеседования, которая встречается почти в каждой крупной компании.
В интервью будут участвовать
📍Виктор Карпов - занимается веб-разработкой с 2011 года, работал в Яндексе, Амазоне. Ведущий канала “coding interviews in a nutshell”. Живет в Эдинбурге, UK.
📍Арсений Трушин - в прошлой жизни - к.ф.м.н. по лазерной физике. Последние 7 лет ищет себя в IT. Поработал в Cadence,Yandex, Equifax, HH, Joom. Сейчас - ведущий питонячий разработчик в Thoth. Все 7 лет пытается в FAANG, бьётся о System Design.
Так же у Виктора есть классный RUclips канал, где он проводит разбор LeetCode задач / viktorkarpovcodes
Будем рады вашей поддержке на boosty boosty.to/megdu_skobok
Так вы поможете нам с развитием и сможете смотреть ролики на 2 недели раньше публичного выхода их на RUclips
Вторая половина интервью прошла на расслабоне и собеседуемый стал самим собой
Че то замудрил, это же слайдин виндоу паттерн, нахрена столько доп структур то? Очень сложное решение вышло , мудреное
Спасибо за обратную связь, в чате было обсуждение решения и ребята предлагали более элегантные способы t.me/backend_megdu_skobkah
Почему массив называют стэком - я не понял, и никто не спросил даже.
Это хороший вопрос, возможно Арсений сперва разволновался 😁
from collections import deque
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
res = []
window = deque()
for i, num in enumerate(nums):
while window and window[0] = k - 1:
res.append(nums[window[0]])
return res
*Кажется, что слишком сложное решение вышло ☹*
*Если работать с массивами, то самый простой вариант сделать так:*
function maxItems(array $items, int $windowSize): array {
$maxItems = [];
for($i = 0; $i maxSize = $maxSize;
}
public function add($value): bool {
if($this->count() == $this->maxSize) {
array_pop($this->items);
}
$this->items[] = $value;
rsort($this->items);
return true;
}
public function count(): int {
return count($this->items);
}
public function top(): int {
return $this->items[0];
}
}
function maxItems(array $items, int $windowSize): array {
$result = [];
$heap = new MaxHeap($windowSize);
foreach($items as $item) {
$heap->add($item);
if ($heap->count() == $windowSize) {
$result[] = $heap->top();
}
}
return $result;
}
*P.S. Да, ребята на пхп тоже интересуются алгоритмическими задачами, а не только формошлепят 😄*
Спасибо за обратную связь, в будущем будем стараться делать лучше