Подскажи, пожалуйста, вторую задачу ты списывал с ГПТ или ранее уже была где-то решена у тебя? Я слышу, что с английским у тебя не очень, а слово denominations совсем не бегиннерс уровня, но ты подобрал его мгновенно.
Про банкомат, забавно конечно... Задача то не самая простая. Много моментов можно проглядеть. Смотрю хронометраж - 10 минут. Ну, думаю, либо чел гений, либо есть какая-то хитрая регулярка в одну строку, о которой я не знаю)) Надо пробовать решать. За час решил. Выдает минимальное кол-во купюр при любом раскладе, хоть и за O(n2). Но для этой задачи приоритетнее меньше купюр, нежели алгоритмическая сложность. Доделал. Можно включать видео и смотреть на недосягаемый уровень мастерства. А тут все гениально и просто - один с багами написал, второй его похвалил и ехали дальше)) Но все равно формат интересный. Автору респект👍
вообще странная задача, выдача купюр это классическая литкодовская задача на динамическое программирование, которая в это интервью не особо вписывается, а здесь еще и доп условие с транзакцией.
@@user-ly7nk1fl4m я прошел циклом по всем номиналам и убирал самый большой номинал на каждой итерации. Внутри жадный алгоритм. Где совокупно меньше купюр на выходе, там и правда. Причем задачу решил за день, до того как прочитал о динамическом программировании и жадном алгоритме в "Грокаем алгоритмы" 😁 С точки зрения алгоритмической сложности - хуже, а по факту - самое правильное решение, как я думаю.
Первая задача (правда, немного упрощенная, без таймаута) у меня была на собесе на стажировку в яндекс. Хех, досмотрел, оказывается и вторая у меня была там же ))
Чую скоро кобзда придёт онлайн собесам) но парню респект что выкладывает контент! Решаю в параллели, порой тормознее конечно, но иногда и быстрее выходит
@@user-oo7tv9gu7y в крупных регионах? ты хочешь сказать чел из условного норильска поедет в красноярск на собес, который не даст ему никаких гарантий или чел из шахт поедет в ростов на собес? бро локально найти нужного спеца будет оч сложно, джуна возможно да - мидла/помидора нет, опция локального поиска еще кое как будет работать москва/питер в регионах это работать не будет 100%
По поводу последнего вопроса на забивание потока на ноде синхронными операциями, в рамках монолита это вполне себе просто решается через async queue, либо брокерами
Во второй задаче есть ошибка, но это ошибка интервьюера, что он дал такие купюры. У тебя всегда будет падать в "не шмогла я". Ответ будет: 1. А такой купюры нету)
Да, тоже заметил. Я параллельно решил порешать и задумался над тем, как из любых по номиналу купюр выдать нужную сумму, если условие - выдавать большими, а автор просто отсортировал по возрастанию, что неверно
По классике собеседующие сами похоже не то чтобы прям знают что спрашивают, в той же задаче на fetch оборачивать дополнительно в промис не нужно как и создавать отдельный аборт контроллер, можно обойстись самим fetch и его параметрами
единственное что мне не оч понравилось, что ты не проговариваешь решение перед тем как его начинать кодить. еще не понял по третьей задаче - должна была быть О(n), а по факту получилась в несколько итераций
Подскажи, пожалуйста, вторую задачу ты списывал с ГПТ или ранее уже была где-то решена у тебя?
Я слышу, что с английским у тебя не очень, а слово denominations совсем не бегиннерс уровня, но ты подобрал его мгновенно.
Про банкомат, забавно конечно... Задача то не самая простая. Много моментов можно проглядеть. Смотрю хронометраж - 10 минут. Ну, думаю, либо чел гений, либо есть какая-то хитрая регулярка в одну строку, о которой я не знаю)) Надо пробовать решать. За час решил. Выдает минимальное кол-во купюр при любом раскладе, хоть и за O(n2). Но для этой задачи приоритетнее меньше купюр, нежели алгоритмическая сложность.
Доделал. Можно включать видео и смотреть на недосягаемый уровень мастерства. А тут все гениально и просто - один с багами написал, второй его похвалил и ехали дальше))
Но все равно формат интересный. Автору респект👍
вообще странная задача, выдача купюр это классическая литкодовская задача на динамическое программирование, которая в это интервью не особо вписывается, а здесь еще и доп условие с транзакцией.
Не нужно здесь динамическое программирование, это тупой жадный алгоритм + условие про транзакцию
@@user-ly7nk1fl4m я прошел циклом по всем номиналам и убирал самый большой номинал на каждой итерации. Внутри жадный алгоритм. Где совокупно меньше купюр на выходе, там и правда.
Причем задачу решил за день, до того как прочитал о динамическом программировании и жадном алгоритме в "Грокаем алгоритмы" 😁
С точки зрения алгоритмической сложности - хуже, а по факту - самое правильное решение, как я думаю.
@@user-ly7nk1fl4m если делать решение с минимально необходимым количеством купюр, то нужно, -- стандартный фоллоу-ап
а можешь написать свое решение? любопытно как сделать максимально правильно
четвертая часть похожа на супер явную подводку к ответу "писать не в консоль лог а в месседж брокер",
про треды в ноде улыбнуло
Крутое видео! Решал параллельно, решил первые две задачи потратил правда 2 часа, потом твое решение смотрел)) Скорость у меня не очень
Спасибо за просмотр))
Первая задача (правда, немного упрощенная, без таймаута) у меня была на собесе на стажировку в яндекс.
Хех, досмотрел, оказывается и вторая у меня была там же ))
Да, ее много где спрашивают
второе задание выполнено неправильно
Чую скоро кобзда придёт онлайн собесам) но парню респект что выкладывает контент! Решаю в параллели, порой тормознее конечно, но иногда и быстрее выходит
не придёт, ты невсегда сможешь найти нужного разраба локально
В крупных регионах фронта на реакте думаю без проблем
И вообщем то будет как и всегда, кто по скиловей те в столицах и миллионниках, а остальным и жипити хватит
@@user-oo7tv9gu7y в крупных регионах? ты хочешь сказать чел из условного норильска поедет в красноярск на собес, который не даст ему никаких гарантий или чел из шахт поедет в ростов на собес? бро локально найти нужного спеца будет оч сложно, джуна возможно да - мидла/помидора нет, опция локального поиска еще кое как будет работать москва/питер в регионах это работать не будет 100%
@@user-oo7tv9gu7y поэтому онлайн собесы никуда не уйдут
Спасибо за полезный контент!)
Спасибо большое тебе за фидбек) буду стараться
Лучший в этом деле)
Вот кто последний раз писал функцию retry руками не юзать, axios, ky, rtk, react-query, swr, trpc. Благо нет вопросов про мемо
По поводу последнего вопроса на забивание потока на ноде синхронными операциями, в рамках монолита это вполне себе просто решается через async queue, либо брокерами
За ноду не особо шарю, изучу, спасибо
Спасибо, очень интересно !
Спасибо тебе за просмотр)
не переполнится там стек, там же все в очередь микротасок улетает, а потом опять прилетает в колл стек по одной (по первой задаче)
есть конторы которые дрючат меньше, а денег платят не меньше)
Это факт)
Накидал бы с пяток названий этих единорогов
спасибо за видео автор
Спасибо большое за просмотр)
Во второй задаче есть ошибка, но это ошибка интервьюера, что он дал такие купюры. У тебя всегда будет падать в "не шмогла я". Ответ будет: 1. А такой купюры нету)
да и в третьей ошибка, даже две. в отсортированный не залетает пятигорск и залетает лишняя астана
В решении второй задачи есть логическая ошибка: твой алгоритм не выдаст 800 рублей, если в банкомате купюры по 500 и 400 рублей.
Да, тоже заметил. Я параллельно решил порешать и задумался над тем, как из любых по номиналу купюр выдать нужную сумму, если условие - выдавать большими, а автор просто отсортировал по возрастанию, что неверно
По факту, собес не о чем. Задачи, которые никогда не встретиться в жизни. Хоть уже не спрашивают про каррирование )
спрашивают, у него в одном из видео попросили написать функцию каррирования
А задачу с промисами нельзя так решить? Выглядит проще гораздо.
function retryFetch(url, {retryCount, timeout}) {
const controller = new AbortController();
const promise = fetch(url, {signal: controller.signal});
const timeoutId = setTimeout(() => {
controller.abort();
}, timeout);
return promise
.then(res => {
if (res.status === 200) {
clearTimeout(timeoutId)
return res.json();
} else {
throw new Error('HTTP Error');
}
})
.catch(err => {
if (retryCount > 1) {
return retryFetch(url, {retryCount: --retryCount, timeout});
} else {
return err;
}
})
}
можно, но на собесе не всегда получается собраться с мыслями
Про event loop - бред ,а задачи на сортировку - норм, серьёзно?)
По классике собеседующие сами похоже не то чтобы прям знают что спрашивают, в той же задаче на fetch оборачивать дополнительно в промис не нужно как и создавать отдельный аборт контроллер, можно обойстись самим fetch и его параметрами
а как отменить без аборт контроллера?
Спасибо за видео, очень полезно, оффер дали по итогу?)
Спасибо за просмотр, оффер не дали)
@@brave_interviews Дали какой-то фидбек? Почему отказ, при том в 3-ем собезе хвалили за решенные задачи
Спасибо за контент, подскажи пожалуйста, какую максимальную вилку на рынке ты встречал сейчас?
Спасибо что смотришь) максимальную вилку видел 400-450. Дальше уже практически ничего нет вроде на снг рынке. Только какие-то очень узкие кейсы
@@brave_interviewsне планировал переходить в фуллстак из за потолка?
@@astkh4381 а разве в фулстаке есть выше вилки ?
@@brave_interviews видел вакансию fullstack 6000$, сейчас снова зашел проверить , но это оказалась зарубежная компания
czcams.com/video/LWn1ZEgflNI/video.html Я не понял с for loop. Он же вроде от начала до конца прокрутится, и start будет из последнего from?
Тоже в Краснодаре работу хочу даже компанию присмотрел)
Почему удаленку не рассмотришь?)
@@brave_interviews в будущем может да, у меня брат так начал и в Тай сьебался)
@@askerkotsev363кем работает брат ?
а разве (new Set()).has() - имеет сложность O(1)? 51:06
Скажи пожалуйста сколько у тебя коммерческого опыта? И как ты копируешь текст не выделяя его? 😅
printScreen наверное как вариант)
про коммерческий опыт он рассказывал в другом интервью на этом канале
единственное что мне не оч понравилось, что ты не проговариваешь решение перед тем как его начинать кодить.
еще не понял по третьей задаче - должна была быть О(n), а по факту получилась в несколько итераций
Линейная сложность там, 2 или 3 n, уже не помню
Базово вроде проговариваю решение, основные шаги)
@@brave_interviews в конце расписываешь решение, как по-хорошему его надо расписать перед тем как начинаешь кодить 🙂
@@user-ve2oe3mr9o я так понимаю, что он с чата гпт берет решение, поэтому его не проговаривает
@@user-ve2oe3mr9oтак очевидно почему так
Или ты думаешь за 10 минут можно решить с нуля задачу на банкомат ?)
Как ты научился решать подобные задачи?
Просто в gpt закидывает он их
Чаще всего плюс минус одинаковые задачки спрашивают, что-то по памяти/аналогии, что-то через гпт
Задачу с ретраями у меня 2 раза уже спрашивали до этого собеса
@@puffinavtz3966 как понял?
@@brave_interviews Спасибо. А как в яндекс коде не палишься, что ты уходишь со вкладки? Или интервьюерам пох?
Взяли по итогу?)
Скоро будет последняя часть))
первая и последняя задача норм, остальные для gpt
99% задач с собесов для гпт)