Mock-собеседование по алгоритмам от Team Lead из Яндекса

  Рет қаралды 102,734

it-interview

it-interview

Күн бұрын

Потренироваться проходить собеседования: clck.ru/3ASssc
Курсы по программированию: clck.ru/3ASt6y
Mock-собеседование от Team Lead из Яндекс алгоритмической секции на платформе it-interview.io. Потренируйтесь и вы проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать!
KZbin канал Владимира: / @vladimir_balun_progra...
LinkedIn Владислава: / vladislav-berezovskiy-...
Таймкоды:
00:00 - Знакомство
00:07 - Обсуждение решения первой задачи
04:05 - Оценка сложности решения первой задачи
06:13 - Реализация решения первой задачи
12:17 - Тестирование решения первой задачи
17:08 - Обсуждение решения второй задачи
25:07- Оценка сложности решения второй задачи
26:54 - Реализация решения второй задачи
30:55 - Тестирование решения второй задачи
35:11 - Отзыв о собеседовании
[[ Отзыв о кандидате ]]
Рекомендовать этого человека на следующий этап? ДА
Каковы были его технические навыки? 4/5
Каковы были его способности решать проблемы? 5/5
Каковы были его коммуникативные способности? 5/5
За время собеседования решили две задачи Merge Intervals и Longest Substring Without Repeating Characters. Кандидат отлично умеет придумывать решения для задач, после чего неплохо реализует их (допускает немного багов, которые сам затем успешно находит). Код пишет чистый и понятный, с его языком знаком отлично (код писал быстро на языке Go - никаких трудностей не возникало). Оценивать сложность решения задач умеет, но не уверенно, так как допускает небольшие ошибки в оценках. Тестировать код умеет, но учитывает не все тест кейсы. По общению приятный, было комфортно общаться с кандидатом.
Merge Intervals - сразу задал вопрос на тему порядка интервалов, после моего ответа сразу сортировать интервалы по началу интервала (совпадающие начала интервалов решил игнорировать - сказал, что перемержатся при проходе). Рассказал про то, какой алгоритм сортировки будет использоваться. Учел случай, что интервалы с одинаковым концом и началом должны будут мержиться. На счет оценки сложности, сперва допустил ошибку и сказал, что сложность по времени будет O(n), но потом вспомнил про сортировку и оценил сложность по времени и памяти корректно. В ходе реализации предложил сразу добавлять в итоговый массив первый интервал (это упростило код). Достаточно быстро написал решение, но сдал по итогу с ошибкой. Предложил кандидату сгенерировать тест кейсы, которыми бы он тестировал свой код, но тест кейсами были покрыти не все базовые случаи (пришлось подсказать). После этого понял, что ошибка в коде будет связана с пустым слайсом интервалом, но нашел проблемное место в коде не с первого раза, но сам. По итогу, решение задачи заняло 19 минут, код получился чистый и лаконичный.
Longest Substring Without Repeating Characters - кандидат сразу предложил использовать плавающее окно для решения задачи, но сначала с неоптимальным поиском дубликатов в подстроке (затем сам рассказал, как можно улучшить это решение). На счет оценки сложности - корректно посчитал сложность по времени, но со сложностью по памяти запутался (сказал что O(n), но когда я ему рассказал про то, что алфавит ограничен, назвал корректную сложность). Перед реализацией не уточнил ничего про регистр символов, но уже время во реализации спросил про кодировки - действительно ли там будут только ASCII символы. Достаточно быстро написал решение, но сдал по итогу с ошибкой. Предложил кандидату сгенерировать тест кейсы, которыми бы он тестировал свой код. На сгенерированных тест кейсах нашел проблему и самостоятельно исправил ее, затем еще остались ошибки, оставленные по невнимательность, на которые я ему указал. По итогу, решение задачи заняло 22 минут, код получился чистый, но с одним лишним условием. Предложил кандидату упростить код - с этим он успешно справился. На дополнительный вопрос о том, какая будет максимально-возможная длина подстроки без дубликатов - ответил корректно.
Рекомендации для кандидата:
Я бы посоветовал уделить внимание тестированию кода, а именно подбору тест кейсов, которые будут покрывать большинство случаев того или иного решения (так как в первой задаче были покрыты не все базовые случаи). Также следует еще немного попрактиковаться с оценкой сложности тех или иных решений (так как в обеих задачах прослеживалась определенная неуверенность в ответах и небольшие ошибки в оценках). Ну и дополнительно не забывать уделять чуть больше времени требованиям к той или иной задаче перед тем, как переходить к ее реализации (кажется, что это позволило бы избежать ошибки в первой задаче).
#собеседование #mockсобеседование #leetcode #алгоритмы

Пікірлер: 232
@iamo0
@iamo0 Ай бұрын
Досмотрел (предыдущий коммент писал посреди видео). Собеседующий хорошо видит что происходит, адекватно оценивает ситуацию, учитывает все детали и когда что-то для себя прояснил, готов двигать интервью вперед даже самостоятельно подсказывая соискателю. Очень круто и профессионально. Респект.
@OlegToropov-uj6jh
@OlegToropov-uj6jh Күн бұрын
Молодец хорошо держится! Красавчик!
@mayboroda
@mayboroda 3 ай бұрын
очень хорошо ведут интервью, никогда так не было у меня. обычно сидят молчат, а ты надрываешься )
@Skilljam
@Skilljam Ай бұрын
Поэтому и похоже на подстановку)
@alexeypetrov8543
@alexeypetrov8543 25 күн бұрын
вот у меня с точностью все наоборот, наоборот подсказывают
@user-uv8ll6bl7t
@user-uv8ll6bl7t 26 күн бұрын
Во 2й задаче можно уйти от for: в store хранить актуальные позиции встреченных символов и двигать левый указатель сразу на старый + 1, если символ уже встречался и его позиция > текущего левого. Позиции всегда обновляем
@user-tw5qq4cy6i
@user-tw5qq4cy6i 2 ай бұрын
Сложность сортировки log(n)👍, отлично
@bbrother92
@bbrother92 Ай бұрын
а какая ?
@user-tw5qq4cy6i
@user-tw5qq4cy6i Ай бұрын
@@bbrother92 n log(n), сортировка
@alexeysharyy8623
@alexeysharyy8623 Ай бұрын
@@bbrother92 теоретический максимум(доказывается при помощи дерева решений) в алгоритмах сортировки сравнением это Ω(n*log(n))
@bbrother92
@bbrother92 Ай бұрын
@@alexeysharyy8623 ну да log(n) это бинарный поиск. а для сортировки слишком революционно. А напомните кто так знатно ошибся?
@dmitrysapelnikov
@dmitrysapelnikov 7 күн бұрын
Так ведь ещё и интервьюер знатно лажанулся, об этом не сказав в фидбеке.
@neruinfo166
@neruinfo166 3 ай бұрын
Если решал литкод, слегкостью повторишь решения) спасибо за контент, приятно смотреть в любом случае
@danilbanan406
@danilbanan406 3 ай бұрын
Владимир красавчик,провел на высшем уровне
@alexandreshmelev4170
@alexandreshmelev4170 3 ай бұрын
Во второй задаче вместо счётчика наверно лучше хранить позицию символа в строке. Тогда левый указатель можно быстро перемещать на символ, следующий за повторившимся символом.
@vladimir_balun_programming
@vladimir_balun_programming 3 ай бұрын
Да, это было бы более оптимально, но кандидат решил именно так
@ourdestruction6851
@ourdestruction6851 3 ай бұрын
разве? допустим у нас строка abcadef, к примеру тогда встретив на третьем символе 'a' мы бы перенесли левый указатель сразу на d, таким образом не учтя самую длинную строку без повторений - bcadef если я конечно вас верно поняла, поправьте если нет
@alexandreshmelev4170
@alexandreshmelev4170 3 ай бұрын
​@@ourdestruction6851Если так делать то зачем вообще хранить позицию встретившегося символа? Конечно же мы перемещаем левый указатель на 1 от позиции, сохранённой в таблице. Ну и надо не забыть обновить это значение, добавив туда позицию повторно встретившегося символа
@GeatMaximus
@GeatMaximus 3 ай бұрын
a -> l,r = 0,0 ab -> r++ abc -> r++ abc "a" -> repeat -> l++ -> bc bca -> r++ bcad -> r++ bcade -> r++ bcadef -> r++ -> end(len(s)) -> return (r-l+1)
@dmitrysapelnikov
@dmitrysapelnikov 7 күн бұрын
Главное при переносе не забыть взять максимум от текущего left, иначе можно ошибочно переместить его левее текущей позиции
@FuckAboutTransport
@FuckAboutTransport 2 ай бұрын
Найм в ИТ конечно это цирк! Да давайте наймем кучу олимпиадников которые будут писать REST интеграции между АС, круд запросы, и тысячи юнит тестов. Браво, фиаско, плакать хочется.
@denisshkanduk6241
@denisshkanduk6241 2 ай бұрын
или можно перестать мыслить крайнстями, иметь базовые навыки решения алгоритмических задач в 10 строк кода не равно быть олимпиадником
@sdramare864
@sdramare864 2 ай бұрын
для прохождения собесов не нужно быть олимпиадником, для 99% заданий достаточно знать 5 алгоритмов/структур - sliding window, heap, hashmap, dynamic programming и BFS/DFS. Если ты не в состоянии разобраться даже в этом, то это просто skill issue, может надо подумать о другой профессии.
@MrRussianuser
@MrRussianuser 2 ай бұрын
@@sdramare864я полагаю, что суть оригинального комментария в том, что у нас спрашивают проход дерева в ширину/глубину, алгоритмы динамического программирования, а потом мы выхожим на работу и перекладываем байтики с одной Кафки в другую (ну или в базу). В этом смысле, если проводить аналогию: найм в АйТи это когда у тебя спрашивают на собеседовании как сделать операцию на сердце, а потом на работе ты собакам лапки перебинтовываешь
@topnick4391
@topnick4391 2 ай бұрын
​@@sdramare864xd
@user-qs5jr2jl2q
@user-qs5jr2jl2q 2 ай бұрын
@@sdramare864small dick energy
@wowxd9893
@wowxd9893 2 ай бұрын
Тимлид краш 🔥🔥🔥
@maksimmityagin7242
@maksimmityagin7242 2 ай бұрын
Второе задание имеет либо некорректную формулировку, либо в результате, мы должны также обработать, как уникальные подстроки “bca” и “cab”) Да, длина будет также 3, но это не обязательно будет длина подстроки “abc” )
@user-nr3si2ky3h
@user-nr3si2ky3h 2 ай бұрын
Это не живое интервью -) Провел как тим лид несколько сотен собеседований с лайвкодингом, люди не общаются подобным образом в стрессовой обстановке, слишком чистый и рафинированный диалог.
@maksimmityagin7242
@maksimmityagin7242 2 ай бұрын
Тем более тогда можно было подумать над условиями задачи/формулировками)
@nmg_prm
@nmg_prm 3 ай бұрын
Здравствуйте Владимир давно смотрю Ваши каналы! Работаю на с++ уже 3 года, стараюсь совершенствоваться! Спасибо за мотивацию!
@nikolaifedorov685
@nikolaifedorov685 2 ай бұрын
Помню откликнулся на резюме из Яндекса. Созвонились с hr. Мне озвучили нужно знать алгоритмы. Я сразу сказал, что не знаю алгоритмы. Мне hr предложил подучить. Больше на вакансии от Яндекса я не откликаюсь
@happyzombie8588
@happyzombie8588 Ай бұрын
У меня так с Тинькофф было.) Позиция была на мидл ФТ, а потом hr пишет - "Ну, тут это у нас все фулл стак, прогать умеешь? Не? Ну тогда изучай, потом напишешь"
@OlegYemelyanov
@OlegYemelyanov Ай бұрын
@@happyzombie8588что такое фт? Фитнес тренер?😅
@medved3027
@medved3027 Ай бұрын
Яндекс сильно выиграл от этого
@SaltyRain1
@SaltyRain1 Ай бұрын
Ты подавался на вакансию разработчика/программиста без знания алгоритмов, и расстроился, что тебе сказали их подучить? А на что ты надеялся? Что на HTML будешь кодить?
@nikolaifedorov685
@nikolaifedorov685 Ай бұрын
@@SaltyRain1 Я уже на тот момент имел опыт разработки 10 лет. Представь себе без знания алгоритмов. И естественно я не расстроился. Я теперь сам заканчиваю все собесы где меня начинают спрашивать знание алгоритмов. Тарам-парам-пам
@nnnabbot
@nnnabbot 3 ай бұрын
Блин большое спасибо за видео. Очень понравилось. Впечатлило нахождение ошибки просто взглядом, я такого не видел еще. И вопрос , как прокачевается подрбный навык? Я понимаю что самый очевидный ответ - решай задачи 😂. Я имею ввиду может есть какая та ступенчитая система, от простых задач к сложным?
@designed6102
@designed6102 3 ай бұрын
вторая задача это прям типовая задача из 24-ого задания егэ
@Ser_UFL
@Ser_UFL 2 ай бұрын
Во второй задаче при нахождении неуникального символа я бы ещё проверял длину отрезка от левого указателя до конца строки и сравнивал его с длиной текущей самой длинной строки. Условно: строка на 20 символов. Все символы были уникальны до 11го. Нам нет смысла дальше проверять
@user-eq7jg7os2b
@user-eq7jg7os2b Ай бұрын
не верно. Например, строка s = abcdefaglm: первые 6 символов уникальны, потому встречается символ a, отбрасываем s[0] и теперь уникальная максимальная строка "bcdefaglm" длинною 9
@Ser_UFL
@Ser_UFL Ай бұрын
@@user-eq7jg7os2b перечитай ещё раз, что я написал.
@Ser_UFL
@Ser_UFL Ай бұрын
@@user-eq7jg7os2b ок, пример с 20 и 11 был неверен. Но проверка верна
@user-ll2xw7tn6v
@user-ll2xw7tn6v 2 ай бұрын
Вторую задачу можно решить за линейное время, если воспользоваться словарём на основе хэш-таблицы с поиском\добавлением за O(1). В словарь складывать последовательность уникальных символов и проверять каждый след. символ за О(1). Хз как работает store в go но вроде как я понял, то это не хэш.
@forgotten_forbidden
@forgotten_forbidden 2 ай бұрын
так store здесь - это имя переменной типа map а поиск в map - O(1)
@yaroslavlymar6599
@yaroslavlymar6599 13 күн бұрын
Я был на совсем другом собесе в Яндекс. Там были задачи Хард из литкода, где не базовые алгоритмы нужно писать.
@thevirusnvgm2518
@thevirusnvgm2518 3 ай бұрын
Первую задачу решил бы с использованием set, так как его в перспективе легче поддерживать, тем более что в коммерческом программировании, сложность алгоритма зависит от необходимости выполнения различных запросов, по типу добавить новый интервал, или вывести в каком интервале лежит число x и находится ли оно в этом интервале и т.д и set(или другая сбалансированная структура данных) подходит для этого лучше
@thevirusnvgm2518
@thevirusnvgm2518 3 ай бұрын
Во второй задаче просто любая хэш таблица без повторений и ВСЁ
@user-pq8uw9br8o
@user-pq8uw9br8o 3 ай бұрын
@@thevirusnvgm2518 скинь решение
@gzhegow
@gzhegow 3 ай бұрын
Если я что-то и понял про коммерческое программирование - оно стремится написать микрофункции обрабатывающие единицу - сущность, агрегат и тд. Реальная программа и даже SQL работают с множествами. Всегда с множествами. И реальная оптимизация это разбить код на этапы, которые можно параллелить, а не написать черный ящик который сдвигами покажет минимум микросекунд. Потому что в этот ящик потом не влезть чтобы его распилить на два, ибо он совершенно нечитаем! Вопросов нет, он мегабыстр... Но вот на вход не одна строка а 100000 и микросекунды плюсуются. И делая множества всегда почти можно редюсом поделить число операций увидев одинаковость. А потом редюсом же раскопировать результаты обратно во множество. Вот где оптимизация. А это - это развлечение для мажоров.
@SuperEugeneone
@SuperEugeneone 3 ай бұрын
Контент полезный. Только по первой задаче у сортировки временная сложность O(n log n), а не O(log n). Суммарная сложность для решения, соответственно, тоже O(n log n)
@vladimir_balun_programming
@vladimir_balun_programming 3 ай бұрын
Да, действительно, видимо я не расслышал корректно в тот момент - сложность O(n log n)
@valeryzeryl9145
@valeryzeryl9145 3 ай бұрын
​@@vladimir_balun_programmingа можете подсказать, почему вообще такая сложность? Есть 2 сценария: 1) сортируем массив (сложность n*log2n (быстрая, в среднем) + log n, поиск) 2) просто складываем все что видим, сложность n. Сортировки не требуется Итого, выгоднее тупо сложить массивы, если n>3
@user-ku4nn5pw8p
@user-ku4nn5pw8p 3 ай бұрын
сложность О-большое - это наихудший сценарий. А 2ой пункт у вас - это наоборот наилучший сценарий@@valeryzeryl9145
@user-sw8fj8ik4z
@user-sw8fj8ik4z 3 ай бұрын
​@@valeryzeryl9145могу ошибаться, но чисто интуитивно, если не отсортировать, придется сравнивать каждый последующий интервал со всеми уже объединенными, соответственно сложность до 0.5n^2 вырастает
@w01fer86
@w01fer86 3 ай бұрын
@@valeryzeryl9145 как ты сложишь [[1,10], [20,30], [5,15]] корректно за один проход?
@Daniil_Chu
@Daniil_Chu 3 ай бұрын
В первой задаче в условии ошибка, как выяснилось позже речь не о интервалах как написано в условии, а о отрезках, так как когда конец первого совпадает с началом второго считается что пересечение есть 🧐
@user-kp7qh4yb6m
@user-kp7qh4yb6m 3 ай бұрын
Открой окно
@constantinegeist1854
@constantinegeist1854 2 ай бұрын
Интервал с закрытым концом. Проблема в чём?
@arsenypogosov7206
@arsenypogosov7206 Ай бұрын
@@constantinegeist1854 В том что у интервалов концы не закрыты. Концыу закрыты у отрезков. Тоже смутило. Можно было использовать собирательное слово промежуток.
@constantinegeist1854
@constantinegeist1854 Ай бұрын
@@arsenypogosov7206 не знаю, зачем в русском языке понапридумали кучи терминов, если суть одна... в английском, если не ошибаюсь, всегда просто interval: open interval, closed interval, left-open interval, right-open interval а так, просто дрочь на терминологию, как по мне хотя да, может быть недопонимание
@arsenypogosov7206
@arsenypogosov7206 Ай бұрын
@@constantinegeist1854 в целом да, согласен с вами.
@alexlightweight
@alexlightweight 2 ай бұрын
Большей глупости чем спрашивать аглоритмы на собесе не существует. Это абсурд !!! Сам никогда их не спрашиваю у кандидатов, но по опыту наборов в другие отделы могу сказать следующее: после проверки алгоритмов вы набираете людей 2 типов 1) просто задрочивших литкод ради собесов 2) реальные задроты-токсики с ЧСВ. Потом мои коллеги тимлиды с соседних отделов ноют что у них в команде не те люди которые им видите ли нужны, а у меня нормальные адекватные ребята и дружная команда без алгосов и никаких проблем ... Выводы делайте сами. (работаю в одном очень крупном аутсорсере РФ)
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
Алгоритмы это способ большим популярным компаниям фильтрануть поток и сбить зп. Если работаешь в рандомной галере, как ты написал, зачем там алгоритмы спрашивать - загадка
@constantinegeist1854
@constantinegeist1854 2 ай бұрын
​@@ChannelCheesecake вместо литкода лучше показать типичный ынтырпрайзный код, в который добавлен говнокод, и попросить поревьюить и порефакторить. Сразу видна куча вещей о кандидате. Задрачивание на литкод для 99% компаний/проектов мимо кассы
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
@@constantinegeist1854 да все бы запросто такое проходили. В рамках собеса ничего интересного не уместишь
@constantinegeist1854
@constantinegeist1854 2 ай бұрын
@@ChannelCheesecake Мы такое практикуем и отшиваем большинство кандидатов, т.к. в упор не видят проблем в коде, или замечают только небольшую часть, или начинают сильно плавать, когда спрашиваешь, как сделать лучше. Задание простое может быть: напр., в контроллере напрямую запрос в БД, в коде явно присутствует состояние гонки (напр. пример с балансом на счету) и т.п. Спрашиваешь, где в коде проблема -- полбеды, затем спрашиваешь, как бы отрефакторил, и тут тоже многие начинают плавать. Плюс куча тем для беседы отсюда может быть ("окей, напрямую в БД лезть из контроллера если не хорошо, какой паттерн бы использовал?", или "окей, здесь состояние гонки, объясни почему? за уровни серилиазации БД пояснишь?" и т.п.) У нас кандидатов на "синьоров" с рынка было пока что единицы, кто смогли всё ответить приемлемо.
@romanarxxy
@romanarxxy 26 күн бұрын
18:19, ну я бы не сказал что 2 ответа скорее, abc, bca, cab, abc, 4 ответа, получается, разве не так?
@ihorvodko767
@ihorvodko767 14 күн бұрын
Проблема интервалов не полностью решена с точки зрения временной сложности. 1) Создайте вектор с размером = максимальному концу всех интервалов. 2) Перебрать входные интервалы и сохранить их в векторе: позиция вектора - это начало интервала, если интервал уже существует, объединить эти два интервала. 4) Взаимодействие с вектором для обработки интервалов в соответствии с логикой видео. Временная сложность равна O(n), n - количество введенных интервалов. (нет необходимости сортировать O(n*log(n))). Сортировка подсчетом выполняется за время O(n), что делает ее асимптотически быстрее, чем алгоритмы сортировки на основе сравнения, такие как быстрая сортировка. ================================================================================================= хорошее место для практики (не стесняйтесь поставить звезду :) ) github.com/IhorVodko/Hackerrank_solutions
@iptashR
@iptashR 3 ай бұрын
0:43. Was machst du?
@tsttst3179
@tsttst3179 Ай бұрын
Вроде на собеседованиях в яндекс задачи сильно сложнее спрашивают. Или это не так?
@get_out_it
@get_out_it 3 ай бұрын
для первой задачи time complexity задачи = сложности сортировки - это nlogn а не линейная как сказали на интервью
@undefined4992
@undefined4992 3 ай бұрын
Он потом поправился
@warmrew9033
@warmrew9033 2 ай бұрын
@@undefined4992 он потом сказал log(n) вместо n*log(n) что тоже неправильно, потому что в худшем у квиксорта будет O(n*n)
@TheCharlieGordon
@TheCharlieGordon 2 ай бұрын
На что влияет это знание, если сортировки не избежать?
@undefined4992
@undefined4992 2 ай бұрын
@@TheCharlieGordon на непосредственно оценку времени работы, это и есть финальный ответ на вопрос
@TheCharlieGordon
@TheCharlieGordon 2 ай бұрын
@@undefined4992 а что даст эта оценка, если сортировка неизбежна? Типа, какая разница, сколько стоит товар, если ты в любом случае вынужден его купить? Т.е. как в этом случае поможет знание - O(n) или O (n*log(n))?
@DubinArtur
@DubinArtur 2 ай бұрын
В первой задаче надо проверять длину не на 0, а на
@ex24739
@ex24739 2 ай бұрын
Можно, но не обязательно
@mayboroda
@mayboroda 3 ай бұрын
а в Го-шке нет Set-а? ну или можно было массив булов заюзать во второй задаче. но то что код не запускали и "я вижу ошибку" - зачет )))
@Varkatel
@Varkatel 3 ай бұрын
во второй задаче можно и константным массивом булов, и битами на инт32
@maxnov4120
@maxnov4120 2 ай бұрын
@@Varkatelхоть кто-то написал про это)
@constantinegeist1854
@constantinegeist1854 2 ай бұрын
Set'а нет, только мапа
@livemy
@livemy 2 ай бұрын
Меня одного смущает что первая задача решена не верно? У него на выходе другие цифры чем в примере, т.е. попал интервал которого не было изначально, это 7
@megauspexx
@megauspexx 2 ай бұрын
По первой задаче
@FuckAboutTransport
@FuckAboutTransport 2 ай бұрын
Как показывает практика, деловые качества у разработчика или тимлида это 90% остальные 10% это кодинг. Ищите людей умеющих общаться, искать решения в сложных ситуациях а не классных кодеров. Вы продолжаете нанимать того кто вам не нужен для того что вам не нужно.
@trashmylife7832
@trashmylife7832 2 ай бұрын
И что тебе эти 10% накодят? 5 лет и потом переписывать? Если не раньше
@user-su5by2uj6q
@user-su5by2uj6q Ай бұрын
у тим лида согласен. А разрабу зачем эти качества?
@trashmylife7832
@trashmylife7832 Ай бұрын
@@user-su5by2uj6q чтобы легаси плодить
@ilyag5572
@ilyag5572 Ай бұрын
​@@trashmylife7832 именно что в работе код занимает 10% времени, нет ничего сложного напечатать код, когда ты уже расписал себе всю задачу и её решение... остаётся только кодом вывести, так что да в работе самое важное это поиск решений, потому что все решения уже есть, их нужно только найти и применить, очень вряд-ли что ты будешь первопроходцем в какой-то из задач
@olegscherbakov5984
@olegscherbakov5984 12 күн бұрын
​@@trashmylife7832открою один секрет: программирование - это одно сплошное переписывание, особенно в энтерпрайзе.
@maximal5791
@maximal5791 2 ай бұрын
Где такой метод slice.Sort ??? С ним НЕ работает. Нигде не могу найти. Заменил на sort.Slice - работает
@Barrrash
@Barrrash 3 ай бұрын
Провожу подобные интервью больше шести лет. Сугубо моё личное мнение... если оценивать работу интервьювера только по выложенному видео, то (на мой взгляд) отработал не выше середины. Конечно, так оценивать не совсем правильно, т. к. кандидат уже "разогрет" и находится в контексте происходящего (не задачь, но сомой процедуры). Из того, что сразу видно, независимо от контекста: + провёл дружелюбно ("безопасно" для кандидата) + уточнял "понятно ли задание" + провеёл по положительному пути + выявил недочёты, какие-то дал найти самому + обсудили основные тест кейсы + дал фидбэк + позволил задать вопросы - технические ошибки (в сложностях, что является основой задания, если судить по уделённому вниманию) - не обсудили альтернативные решения и использование средств платформы. - не выявлены способы принятия решений (как и сами принятые решения по допустимым входным данным, ошибка или пустое множество на выходе и пр.) - кандидату не показан потенциал для проф. роста (не вызван интерес) - не запрошен фидбэк на интервью от кандидата (возможно будет позже - на отдельном звонке). Моё мнение: интервьюверу стоит озаботиться изучением вопроса о дополнительных целях интервью. Основную задачу интервью (выявить техническое соответствие кандидата, запрашиваемой позиции) с натяжной выполнил. Есть и не менее важные дополнительные цели интервью.
@heuretic
@heuretic 3 ай бұрын
Это стандартный формат 3-го этапа Яндекса, а больше в РФ таких интервью никто не проводят, если, конечно, цель - закрыть позицию, а не найти еще один винтик в систему или почесать свое ЧСВ. >кандидату не показан потенциал для проф. роста (не вызван интерес) Компанию на Я при найме не интересует твой опыт и знания за пределами Литкода (правда, есть еще архитектурная задача), в итоге разве что можно попросить з/п ближе к правому концу вилки. >не запрошен фидбэк на интервью от кандидата По окончании предлагается форма обратной связи. Можно там потыкать, что-то написать про проблемы. По-моему, результат идет в /dev/null.
@Barrrash
@Barrrash 3 ай бұрын
@heuretic "а больше в РФ таких интервью никто не проводят, если, конечно, цель - закрыть позицию, а не найти еще один винтик в систему или почесать свое ЧСВ." Не уверен, что я правильно понял что Вы хотели сказать в этой части. На всякий случай поясню некоторые моменты. - Интервью с написанием кода в РФ проводит не только Яндекс. Как я уже написал - у нас такие интервью. Только у нас это второй (и как правило последний) этап. Он объединён с выявлением софт-скилов, общей технической беседой и подробным рассказом о процессах в компании или ответом на вопросы кандидата. Первый этап - короткий технический "скрининг" по телефону с целью принятия решения о втором этапе (в том числе кандидатом). - Что касается "почесать ЧСВ" на интервью - это самое плохое, что может делать интервьювер (таких - сразу в лес :)). - Про закрытие вакансии или поиск "винтика в систему". Как раз поиском винтиков (в том числе по довольно специфическим запросам) команды (в аджайл) и отдела (в матричной системе) я занимался. Написание и обсуждение кода отлично подходит для таких задач (конечно, только им не обойтись, о чём я и писал в оригинальном комменте). На моих интервью в том числе можно гуглить (как и в рабочем процессе). - Про "вызвать интерес": тут у Яндекса, конечно, особое положение - к ним многие уже за имя готовы идти. Для компаний без имени стоит задача заинтересовать кандидата. Одна из лучших мотиваций, как показывает моя практика - именно вызвать неподдельный интерес. Это даже деньгами не всегда перекупается. :) - За информацию о наличии фидбэка спасибо - моя догадка о том, что он собирается позже была верна.
@vladikvelikiy
@vladikvelikiy 2 ай бұрын
​@@Barrrashчепуху какую-то написал, ЧСВ потешил своё очевидно
@MRtheLAGERAT
@MRtheLAGERAT 3 ай бұрын
Забавно, что именно эти задачки мне давали год назад на собесе в яндекс)
@Kondratyevv
@Kondratyevv 3 ай бұрын
И че, ты попал в Яндекс?
@MRtheLAGERAT
@MRtheLAGERAT 3 ай бұрын
@@Kondratyevv нет, завалился на одном из след. этапов(
@freestylerveevo
@freestylerveevo 3 ай бұрын
​@@MRtheLAGERAT а че за след этап был?
@freestylerveevo
@freestylerveevo 3 ай бұрын
​@@MRtheLAGERATи как попал на первый собес в яндекс? если можешь, поделись, пожалуйста
@MRtheLAGERAT
@MRtheLAGERAT 3 ай бұрын
@@freestylerveevo на всех этапах дают 2 задачи, этапов хз сколько может быть, на стажировку вроде 3-4, читал, что на другие позиции вплоть до 9 таких этапов может быть Сам попал когда набирали людей на стажировку, сначал решаешь задачи типа codeforce на яндекс контесте, если прошёл, то назначают вот такие собесы.
@kOzae6bI4
@kOzae6bI4 9 күн бұрын
Забавно, но первую задачу вот как есть только что давали мне в мете на интервью в конце апреля
@iamo0
@iamo0 Ай бұрын
Собеседующий дает некоторые ответы соискателю. На самом деле это не хорошо и не плохо, можно если человек запутался подтолкнуть его и смотреть на блеск в глазах, все еще понимает он контекст или мы его потеряли. Но может быть и наоборот: кто-то пролезет на энтузиазме собеседующего. Но может быть этот энтузиазм происходит из того, что ребята друг друга знают.
@user-fb6wy6sq6o
@user-fb6wy6sq6o Ай бұрын
Какие map? Вектора надо использовать во второй задаче. С этими map до 100 символов алфавита вектор быстрее будет тупо из за того, что проц хотя бы закешировать значения себе сможет. В map элементы памяти по разным адресам находятся. Это очень медленно.
@Smurfetti
@Smurfetti 3 ай бұрын
А на реальной АА какой вердикт бы был? И на какой Грейд?
@Kondratyevv
@Kondratyevv 3 ай бұрын
Что такое АА? Батарейки?
@w01fer86
@w01fer86 3 ай бұрын
@@Kondratyevv название секции в Яндексе, когда тебя собеседует опытный собеседующий (а не рандомный разраб, у которого это первое собеседование за полгода). Обычно оценки таких секций больше весят при принятии решения о найме и грейде.
@zazaorg3957
@zazaorg3957 3 ай бұрын
@@w01fer86 это не задачи аа
@comparison9436
@comparison9436 21 күн бұрын
Чел идет на тим лида, использует сортировку и говорит скорость линейная🤦🏻 как их вообще рассматривают с такими знаниями?
@lifewinsful
@lifewinsful 2 ай бұрын
видно, что человек уже знал алгоритмы решения, просто вспоминал
@JohnDoe-qe5je
@JohnDoe-qe5je 2 ай бұрын
А смысл от такого фидбека, какая польза? Это больше на придирки похоже мимо сути дела. Если это не монтаж/склейка, то человек решил две задачи за относительно небольшое время при том в относительно стрессовых условиях (на которые смело можно списать основные недочёты), без существенных ошибок. Как надо было решать ещё лучше? И за подобное собеседование ещё предлагается заплатить круглую сумму, в чём ценность?
@medved3027
@medved3027 Ай бұрын
Это т.н. mock interview - ненастоящее. Делается оно по просьбе интервьюируемого. На другом конце кто-то кого он знает и от кого может адекватно принимать рекомендации, чтобы прокачать скилы для реального собеседования
@get_out_it
@get_out_it 3 ай бұрын
Но ощущение конечно что чел знал какие задачи будут и паттерны
@undefined4992
@undefined4992 3 ай бұрын
Эти задачи есть на литкоде, вполне вероятно, что он их уже решал
@animeai-content
@animeai-content 2 ай бұрын
тут задачи достаточно простые
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
Это очень простые задачи, алё
@get_out_it
@get_out_it 2 ай бұрын
@@ChannelCheesecake это ваше субъективное мнение
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
@@get_out_it это статистическое мнение, эти задачи сильно проще, чем те которые можно обычно увидеть
@TheCharlieGordon
@TheCharlieGordon 2 ай бұрын
Т.е. в яндексе занимаются не интерпрайз программированием, а пишут алгоритмы? Ну-ну.
@young_flex3077
@young_flex3077 Ай бұрын
16:35 ну все задачу с первой проходки не решил, в яндекс не берем
@user-zi3er5oi5y
@user-zi3er5oi5y Ай бұрын
Именно из-за таких собеседований я каждый раз отказываю рекрутерам яндекса
@ex24739
@ex24739 2 ай бұрын
В 1 задачке же вместо lastItem = max... должен быть merged =..?
@antonantonov2995
@antonantonov2995 3 күн бұрын
lastItem[1] = max(lastItem[1], intervals[i][1]) В логике кода все правильно. Это для расширения диапазона интервала Если у нас есть последовательность [[1,3],[2,8],[2,6]...] На первой итерации lastItem - [1,3], а intervals[i] - [2,8], и назначается "больший" конец lastItem[1] = max(3, 8) // диапазон lastItem становится [1,8] На следущей итерации lastItem - [1,8], а intervals[i] - [2,6] , и назначается "больший" конец lastItem[1] = max(8, 6) // диапазон lastItem остается [1,8]
@dmit100
@dmit100 3 ай бұрын
давай в слдщий раз что-нбдь, чего нет в neetcode roadmap, а то неинтересно даже
@muted9877
@muted9877 3 ай бұрын
а когда уже собес с работником другого языка?
@megauspexx
@megauspexx 2 ай бұрын
Быстрая сортировка сложность n*log(n), хотя собеседуемый сказал log(n)
@warmrew9033
@warmrew9033 2 ай бұрын
O(n*n). А n*log(n) - только для среднего случая. А считают по худшему.
@denisshkanduk6241
@denisshkanduk6241 2 ай бұрын
@@warmrew9033библеотечные сортировки (про которые и говорил собеседуемый) используют quicksort+heapsort это так называемый introsort он работает и вхудшем случае за nlogn
@Kelb90
@Kelb90 3 ай бұрын
У первой задачи не линия по памяти, а константа, потому что пространственная сложность относится только к промежуточным данным. Странно, что интервьюер это не подметил. По сортировке скорее всего оговорился, потому что странно думать про лог(n)
@radiosh66
@radiosh66 2 ай бұрын
Поделитесь плиз ссылочкой на источник, что память на результат не учитывается в пространственной сложности.
@Kelb90
@Kelb90 2 ай бұрын
​@@radiosh66 Привет. Мы оцениваем алгоритм, а не среду с которой этот алгоритм взаимодействует для ввода/вывода, иначе минимальная пространственная сложность была бы линией всегда. Мы не используем массив для вычислений, поэтому учитываться в пространственной сложности он не будет. Можно почитать, например, в computational complexity Димитроу.
@radiosh66
@radiosh66 2 ай бұрын
@Kelb90 спасибо за разъяснения, осталось на литкоде теперь всех переучить новому подходу к оценке пространственной сложности, т.к. на моей памяти во всех объяснениях учитывалась вся новая память, которую аллоцирует функция.
@pav28amur
@pav28amur 2 ай бұрын
@@radiosh66 да, в литкоде может быть требование выполнять in-space, когда нельзя делать промежуточный массив и возвращать его. Тогда подход к решение сильно меняется.
@user-yd9xy3rb4x
@user-yd9xy3rb4x 2 күн бұрын
Я то думал там спрашивают какой то ужас, а там чет все слишком легкое
@HeczZots
@HeczZots 24 күн бұрын
в цикле будет паника если в матрице пустые массивы без элементов
@spinacker16
@spinacker16 Ай бұрын
дали тимлиду два изяна... а мне хард впаяли с дп на 50 строк кода.
@user-qs7ex4io1z
@user-qs7ex4io1z 2 ай бұрын
Почему тимлиду из Яндекса дают задачки для студентов
@nihttoter3240
@nihttoter3240 Ай бұрын
Я был фронтенд разрабом мне такие задачи давали тоже. Опыта во фронте 15 лет. Ни разу за 15 лет интервалы не мёржил. Я вообще не понимаю, зачем это нужно, что фронту, что тим лиду...
@vp_arth
@vp_arth 2 ай бұрын
А в go нет структуры множество(set)? На первый взгляд цикл сдвига l кажется лишним. Ситуация, которую он решает не может произойти.
@leonidfilippov9698
@leonidfilippov9698 22 күн бұрын
Есть map[string]struct{}, тот же фунционал
@vp_arth
@vp_arth 22 күн бұрын
Не совсем, к словарю нужно велосипедить методы - пересечение, объединение множеств, вычитание и т.п. Для обеспечения уникальности подойдёт, да.
@alexandrcorbin1709
@alexandrcorbin1709 2 ай бұрын
Очередное доказательство, что если повернуть стол и собеседующего превратить в собеседуемого, то он просто не пройдет собес, а завалить его на нем легче легкого).
@get_out_it
@get_out_it 3 ай бұрын
По поводу второй задачи. -забавно получилось что интервьюер упомянул что 26 букв алфавито. только в самом условии. неговорилось про буквыалфавита - написано символов, какие. символы могут быть - никто конечно не спросил
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
Какая разница
@get_out_it
@get_out_it 2 ай бұрын
@@ChannelCheesecake большая разница, если ты не знаешь конечно множество символов то ты не можешь в решении зарезервировать массив на 26 символов к примеру
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
@@get_out_it во-первых интервьюер сказал, что там не только буквы, а ASCII, во-вторых делай Map и не думай над таким
@denisshkanduk6241
@denisshkanduk6241 2 ай бұрын
@@get_out_itреч о резервировании не шла, символы подсчитываются в рантайме.char почти везеде 1 байт = 256 символов окей даже если мы подключим крутые библиотеки со всем возможными языками мира там не наберется и 2*10^9 а это обычный int. Что считается константой при размере входа стремящегося к бесконечности
@defkill1erb
@defkill1erb 2 ай бұрын
Как мы дожили до того чтобы писать код на интервью в блокноте с подсветкой синтаксиса языка ? 😮
@alekseifilippov9236
@alekseifilippov9236 Ай бұрын
В колледже информатики когда учил синтаксис писал на бумажке и сдавал преподу или мелом на доске, а потом уже пересаживались за компы
@user-yd9xy3rb4x
@user-yd9xy3rb4x 2 күн бұрын
Стопэ, вторая задача это по моему easy с leetcode
@dimama1551
@dimama1551 Ай бұрын
Наш брат головами таких в школе мел с доски вытирал
@noname-bi7ve
@noname-bi7ve 2 ай бұрын
алгодрочеры не нужны
@wall-wrecker-my6ss
@wall-wrecker-my6ss 3 ай бұрын
Да ладно ребят, там склейка на монтаже. Вы думаете чел просто сел и решил. Конечно нет. Может договорняк, ради контента
@user-pq3qd5zm6c
@user-pq3qd5zm6c 3 ай бұрын
Ну хз. Это я решаю литкод 4 месяца. И сразу же решил эти задачи. Врядли постанова
@dieff_automation
@dieff_automation 3 ай бұрын
​@@user-pq3qd5zm6cда там видно склейку. Если прям с нуля там минут 40 надо, если не гуглит, а с помощью gpt 4 версии, она решается за 3 минуты, лучшим алгоритмом, плюс все расписыаается.
@404Negative
@404Negative 2 ай бұрын
задачи элементарные, что их решать. просто 2 простейшие свёртки и всё
@EsinaViwn9
@EsinaViwn9 2 ай бұрын
​@@404Negative что значит свертка?
@constantinegeist1854
@constantinegeist1854 2 ай бұрын
Легко решается
@Boka-and-Joka
@Boka-and-Joka 2 ай бұрын
все в яндексе и сам яндекс - дно поганое. как компания, так и люди в ней. да еще и куколды)
@alexlightweight
@alexlightweight 2 ай бұрын
да, яндекс уже лет 10 как опустился, самое интересное что там ЗП чуть ниже средних по рынку, но все туда рвутся почему то, подозреваю просто хотят эту ачивку не более ... ))))))
@user-fh3wg8oj6q
@user-fh3wg8oj6q 3 ай бұрын
Чет легенькие задачи
@UserSo4reUsu75ry
@UserSo4reUsu75ry 3 ай бұрын
У меня бы 30 минут ушло бы на решение одной задачи. Надо больше решать ? Я уже больше года решаю задачи, но быстрее я их решать не стал.
@victorianking9042
@victorianking9042 3 ай бұрын
надо перед собесом их всех заучить, а после оставить до следующего собеса.
@user-sc9hv7vy4z
@user-sc9hv7vy4z 3 ай бұрын
Очень простые задачи.
@w01fer86
@w01fer86 3 ай бұрын
Ты не поверишь, сколько кандидатов надо перебрать прежде, чем найдёшь кого-то, кто их решит
@D-gw4vj
@D-gw4vj 2 ай бұрын
@@w01fer86 вау найти того, кто может решать задачи, но потом двигать и красить кнопку.
@Miclell
@Miclell 23 күн бұрын
Как можно распинаться пол часа при решении столь лёгкой задачи то?
@user-zp7ty5yh7w
@user-zp7ty5yh7w 22 күн бұрын
Вы идиот?
@nicholasspezza9449
@nicholasspezza9449 3 ай бұрын
Чот Баламут постарел, в яндексе из него все соки выжимают. Возвращайся в Озон!
@vladimir_balun_programming
@vladimir_balun_programming 3 ай бұрын
Побриться, подстричься и как новенький!
@artemkas4191
@artemkas4191 3 ай бұрын
Реально чот похудел вообще
@user-mn2zo4tx8n
@user-mn2zo4tx8n 3 ай бұрын
озон овно еще хуже
@ourtube5191
@ourtube5191 3 ай бұрын
Он просто тренеруетсч
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
Глаза пустые
@user-li6qv1mv7b
@user-li6qv1mv7b 2 ай бұрын
По первой задаче не совсем понимаю почему сложность на этапе мержа интервалов оказалась O(N)? Остальные интервалы то тоже нужно учесть и смержить с остальными, а это уже возрастает до квадратичной зависимости - что огромная разница
@igorf243
@igorf243 2 ай бұрын
для этого можно пройти по всему массиву всего один раз и выполнить по одной операции над каждым значеием из отрезка, в худшем случае будет O(2N) == O(N)
@user-li6qv1mv7b
@user-li6qv1mv7b 2 ай бұрын
​@@igorf243 "Дан массив интервалов, объедините все пересекающиеся интервалы и верните массив непересекающихся" Ну? Имеется же в виду что у нас может быть несколько объединенных интервалов, которые нужно вернуть А вернуть мы сможем, когда совершим операции над всеми НЕобъединенными интервалами По итогу выполнение этой задачи - возвращается один только массив, с которым ищется возможные пересечения
@juhikoinb1403
@juhikoinb1403 Ай бұрын
@@user-li6qv1mv7bесли массив отсортирован, то нам надо просто проверять пересечение с предыдущим: пересекаются - объединяем, не пересекаются - отправляем на выход и начинаем собирать новый. Чистейший O(N).
@romanfomin8109
@romanfomin8109 3 ай бұрын
А какие это задачи на литкоде? Чтоб самому порешать
@wowyomad
@wowyomad 3 ай бұрын
Интервалы - 56 Самая длинная подстрока - 3
@wonderful2122
@wonderful2122 3 ай бұрын
Обе задачи имеют средний уровень на leetcode.
@sb9185
@sb9185 3 ай бұрын
Не изи)
@JohnCena-lv3ew
@JohnCena-lv3ew 2 ай бұрын
Хахаха. Порекомендуем тим лиду яндекса (если он данные задачи видел первый раз и это все не "актерская игра") больше сидеть на литкоде. Если таки он видел это первый раз, то непонятно как в яндексе обычные люди становятся (давайте только не будем уподобляться самому яндексу, и скажет что обычные люди с точки зрения данных алгоритмических задач) тим лидами. Потому что, то, что видел и в чем участвовал я не было таким простым. видимо рядята любят тащить себе в команды не кого-то с "улицы", а своего проверенного, а остальных валят. неприятное впечатление от яндекса.
@ChannelCheesecake
@ChannelCheesecake 2 ай бұрын
А тебе какие задачи дали? Ну эти оч простые, мб с наймом беда сейчас
@stepandemin5836
@stepandemin5836 2 ай бұрын
100% постановка. Вам, ребята в театральный надо ;)
@user-je8yv6gq7o
@user-je8yv6gq7o Ай бұрын
Это нумерология какая то что ли? Или астрология?
@dailys7391
@dailys7391 3 ай бұрын
Чет туго пошло у парня
@dibehemoth401
@dibehemoth401 3 ай бұрын
Нифига се туго 2 медиум за 37 минут...
@sb9185
@sb9185 3 ай бұрын
​​@@dibehemoth401Так это изи уровень
@dibehemoth401
@dibehemoth401 3 ай бұрын
@sb9185 это обе медиум литкод. Хз как в яндексе внутри считают, конечно.
@sb9185
@sb9185 3 ай бұрын
646?@@dibehemoth401
@get_out_it
@get_out_it 3 ай бұрын
ну и видно что чел готовился и решал уже эти задачи потому что. сходу для первой задачи определил что нужно сортировать, для второй задачи сходу вопсользовался паттерном скользящего окна.
@brainrainz
@brainrainz 3 ай бұрын
слабенько, хотя бы 1 medium бы дали
@get_out_it
@get_out_it 3 ай бұрын
это медиум на литкоде
@endaksi_channel
@endaksi_channel 3 ай бұрын
void task1() { var initial = List.of(new StartEnd(3, 5), new StartEnd(4, 6), new StartEnd(7, 8), new StartEnd(1, 2)); var reduced = initial.stream() .sorted(Comparator.comparing(StartEnd::start)) .reduce( new ArrayList(), (partial, next) -> { if (!partial.isEmpty()) { var indexOfLast = partial.size() - 1; var last = partial.get(indexOfLast); if (last.overlaps(next)) { partial.set(indexOfLast, StartEnd.merge(last, next)); return partial; } } partial.add(next); return partial; }, (first, second) -> first); System.out.println(reduced); } record StartEnd(int start, int end) { boolean overlaps(StartEnd other) { return start
@gzhegow
@gzhegow 3 ай бұрын
Стримы это очень круто. Стримы это хорошо забытое прошлое и счастливое будущее.
@vp_arth
@vp_arth 2 ай бұрын
s/second.end/Math.max(first.end, second.end)/
О, сосисочки! (Или корейская уличная еда?)
00:32
Кушать Хочу
Рет қаралды 3,3 МЛН
Let's all try it too‼︎#magic#tenge
00:26
Nonomen ノノメン
Рет қаралды 43 МЛН
ПЕЙ МОЛОКО КАК ФОКУСНИК
00:37
Masomka
Рет қаралды 4,5 МЛН
Kitten has a slime in her diaper?! 🙀 #cat #kitten #cute
00:28
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 949 М.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Открытое алгоритмическое собеседование
1:05:22
Яндекс Практикум
Рет қаралды 1,9 М.
О, сосисочки! (Или корейская уличная еда?)
00:32
Кушать Хочу
Рет қаралды 3,3 МЛН