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

Потренироваться проходить собеседования: clck.ru/3ASssc
Курсы по программированию: clck.ru/3ASt6y
Mock-собеседование от Team Lead из Яндекс алгоритмической секции на платформе it-interview.io. Потренируйтесь и вы проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать!
KZread канал Владимира: / @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 #алгоритмы

Пікірлер: 233

  • @iamo0
    @iamo0Ай бұрын

    Досмотрел (предыдущий коммент писал посреди видео). Собеседующий хорошо видит что происходит, адекватно оценивает ситуацию, учитывает все детали и когда что-то для себя прояснил, готов двигать интервью вперед даже самостоятельно подсказывая соискателю. Очень круто и профессионально. Респект.

  • @mayboroda
    @mayboroda3 ай бұрын

    очень хорошо ведут интервью, никогда так не было у меня. обычно сидят молчат, а ты надрываешься )

  • @Skilljam

    @Skilljam

    Ай бұрын

    Поэтому и похоже на подстановку)

  • @alexeypetrov8543

    @alexeypetrov8543

    26 күн бұрын

    вот у меня с точностью все наоборот, наоборот подсказывают

  • @OlegToropov-uj6jh
    @OlegToropov-uj6jh2 күн бұрын

    Молодец хорошо держится! Красавчик!

  • @user-uv8ll6bl7t
    @user-uv8ll6bl7t27 күн бұрын

    Во 2й задаче можно уйти от for: в store хранить актуальные позиции встреченных символов и двигать левый указатель сразу на старый + 1, если символ уже встречался и его позиция > текущего левого. Позиции всегда обновляем

  • @user-tw5qq4cy6i
    @user-tw5qq4cy6i2 ай бұрын

    Сложность сортировки 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

    8 күн бұрын

    Так ведь ещё и интервьюер знатно лажанулся, об этом не сказав в фидбеке.

  • @neruinfo166
    @neruinfo1663 ай бұрын

    Если решал литкод, слегкостью повторишь решения) спасибо за контент, приятно смотреть в любом случае

  • @danilbanan406
    @danilbanan4063 ай бұрын

    Владимир красавчик,провел на высшем уровне

  • @nmg_prm
    @nmg_prm3 ай бұрын

    Здравствуйте Владимир давно смотрю Ваши каналы! Работаю на с++ уже 3 года, стараюсь совершенствоваться! Спасибо за мотивацию!

  • @alexandreshmelev4170
    @alexandreshmelev41703 ай бұрын

    Во второй задаче вместо счётчика наверно лучше хранить позицию символа в строке. Тогда левый указатель можно быстро перемещать на символ, следующий за повторившимся символом.

  • @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

    8 күн бұрын

    Главное при переносе не забыть взять максимум от текущего left, иначе можно ошибочно переместить его левее текущей позиции

  • @yaroslavlymar6599
    @yaroslavlymar659915 күн бұрын

    Я был на совсем другом собесе в Яндекс. Там были задачи Хард из литкода, где не базовые алгоритмы нужно писать.

  • @nnnabbot
    @nnnabbot3 ай бұрын

    Блин большое спасибо за видео. Очень понравилось. Впечатлило нахождение ошибки просто взглядом, я такого не видел еще. И вопрос , как прокачевается подрбный навык? Я понимаю что самый очевидный ответ - решай задачи 😂. Я имею ввиду может есть какая та ступенчитая система, от простых задач к сложным?

  • @user-ll2xw7tn6v
    @user-ll2xw7tn6v2 ай бұрын

    Вторую задачу можно решить за линейное время, если воспользоваться словарём на основе хэш-таблицы с поиском\добавлением за O(1). В словарь складывать последовательность уникальных символов и проверять каждый след. символ за О(1). Хз как работает store в go но вроде как я понял, то это не хэш.

  • @forgotten_forbidden

    @forgotten_forbidden

    2 ай бұрын

    так store здесь - это имя переменной типа map а поиск в map - O(1)

  • @designed6102
    @designed61023 ай бұрын

    вторая задача это прям типовая задача из 24-ого задания егэ

  • @maksimmityagin7242
    @maksimmityagin72422 ай бұрын

    Второе задание имеет либо некорректную формулировку, либо в результате, мы должны также обработать, как уникальные подстроки “bca” и “cab”) Да, длина будет также 3, но это не обязательно будет длина подстроки “abc” )

  • @user-nr3si2ky3h

    @user-nr3si2ky3h

    2 ай бұрын

    Это не живое интервью -) Провел как тим лид несколько сотен собеседований с лайвкодингом, люди не общаются подобным образом в стрессовой обстановке, слишком чистый и рафинированный диалог.

  • @maksimmityagin7242

    @maksimmityagin7242

    2 ай бұрын

    Тем более тогда можно было подумать над условиями задачи/формулировками)

  • @nikolaifedorov685
    @nikolaifedorov6852 ай бұрын

    Помню откликнулся на резюме из Яндекса. Созвонились с hr. Мне озвучили нужно знать алгоритмы. Я сразу сказал, что не знаю алгоритмы. Мне hr предложил подучить. Больше на вакансии от Яндекса я не откликаюсь

  • @happyzombie8588

    @happyzombie8588

    2 ай бұрын

    У меня так с Тинькофф было.) Позиция была на мидл ФТ, а потом hr пишет - "Ну, тут это у нас все фулл стак, прогать умеешь? Не? Ну тогда изучай, потом напишешь"

  • @OlegYemelyanov

    @OlegYemelyanov

    Ай бұрын

    @@happyzombie8588что такое фт? Фитнес тренер?😅

  • @medved3027

    @medved3027

    Ай бұрын

    Яндекс сильно выиграл от этого

  • @SaltyRain1

    @SaltyRain1

    Ай бұрын

    Ты подавался на вакансию разработчика/программиста без знания алгоритмов, и расстроился, что тебе сказали их подучить? А на что ты надеялся? Что на HTML будешь кодить?

  • @nikolaifedorov685

    @nikolaifedorov685

    Ай бұрын

    @@SaltyRain1 Я уже на тот момент имел опыт разработки 10 лет. Представь себе без знания алгоритмов. И естественно я не расстроился. Я теперь сам заканчиваю все собесы где меня начинают спрашивать знание алгоритмов. Тарам-парам-пам

  • @FuckAboutTransport
    @FuckAboutTransport2 ай бұрын

    Найм в ИТ конечно это цирк! Да давайте наймем кучу олимпиадников которые будут писать 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

  • @thevirusnvgm2518
    @thevirusnvgm25183 ай бұрын

    Первую задачу решил бы с использованием set, так как его в перспективе легче поддерживать, тем более что в коммерческом программировании, сложность алгоритма зависит от необходимости выполнения различных запросов, по типу добавить новый интервал, или вывести в каком интервале лежит число x и находится ли оно в этом интервале и т.д и set(или другая сбалансированная структура данных) подходит для этого лучше

  • @thevirusnvgm2518

    @thevirusnvgm2518

    3 ай бұрын

    Во второй задаче просто любая хэш таблица без повторений и ВСЁ

  • @user-pq8uw9br8o

    @user-pq8uw9br8o

    3 ай бұрын

    @@thevirusnvgm2518 скинь решение

  • @gzhegow

    @gzhegow

    3 ай бұрын

    Если я что-то и понял про коммерческое программирование - оно стремится написать микрофункции обрабатывающие единицу - сущность, агрегат и тд. Реальная программа и даже SQL работают с множествами. Всегда с множествами. И реальная оптимизация это разбить код на этапы, которые можно параллелить, а не написать черный ящик который сдвигами покажет минимум микросекунд. Потому что в этот ящик потом не влезть чтобы его распилить на два, ибо он совершенно нечитаем! Вопросов нет, он мегабыстр... Но вот на вход не одна строка а 100000 и микросекунды плюсуются. И делая множества всегда почти можно редюсом поделить число операций увидев одинаковость. А потом редюсом же раскопировать результаты обратно во множество. Вот где оптимизация. А это - это развлечение для мажоров.

  • @iptashR
    @iptashR3 ай бұрын

    0:43. Was machst du?

  • @romanarxxy
    @romanarxxy28 күн бұрын

    18:19, ну я бы не сказал что 2 ответа скорее, abc, bca, cab, abc, 4 ответа, получается, разве не так?

  • @Ser_UFL
    @Ser_UFL2 ай бұрын

    Во второй задаче при нахождении неуникального символа я бы ещё проверял длину отрезка от левого указателя до конца строки и сравнивал его с длиной текущей самой длинной строки. Условно: строка на 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 был неверен. Но проверка верна

  • @tsttst3179
    @tsttst3179Ай бұрын

    Вроде на собеседованиях в яндекс задачи сильно сложнее спрашивают. Или это не так?

  • @mayboroda
    @mayboroda3 ай бұрын

    а в Го-шке нет Set-а? ну или можно было массив булов заюзать во второй задаче. но то что код не запускали и "я вижу ошибку" - зачет )))

  • @Varkatel

    @Varkatel

    3 ай бұрын

    во второй задаче можно и константным массивом булов, и битами на инт32

  • @maxnov4120

    @maxnov4120

    2 ай бұрын

    @@Varkatelхоть кто-то написал про это)

  • @constantinegeist1854

    @constantinegeist1854

    2 ай бұрын

    Set'а нет, только мапа

  • @Daniil_Chu
    @Daniil_Chu3 ай бұрын

    В первой задаче в условии ошибка, как выяснилось позже речь не о интервалах как написано в условии, а о отрезках, так как когда конец первого совпадает с началом второго считается что пересечение есть 🧐

  • @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 в целом да, согласен с вами.

  • @kOzae6bI4
    @kOzae6bI410 күн бұрын

    Забавно, но первую задачу вот как есть только что давали мне в мете на интервью в конце апреля

  • @livemy
    @livemy2 ай бұрын

    Меня одного смущает что первая задача решена не верно? У него на выходе другие цифры чем в примере, т.е. попал интервал которого не было изначально, это 7

  • @wowxd9893
    @wowxd98932 ай бұрын

    Тимлид краш 🔥🔥🔥

  • @muted9877
    @muted98773 ай бұрын

    а когда уже собес с работником другого языка?

  • @DubinArtur
    @DubinArtur2 ай бұрын

    В первой задаче надо проверять длину не на 0, а на

  • @ex24739

    @ex24739

    2 ай бұрын

    Можно, но не обязательно

  • @alexlightweight
    @alexlightweight2 ай бұрын

    Большей глупости чем спрашивать аглоритмы на собесе не существует. Это абсурд !!! Сам никогда их не спрашиваю у кандидатов, но по опыту наборов в другие отделы могу сказать следующее: после проверки алгоритмов вы набираете людей 2 типов 1) просто задрочивших литкод ради собесов 2) реальные задроты-токсики с ЧСВ. Потом мои коллеги тимлиды с соседних отделов ноют что у них в команде не те люди которые им видите ли нужны, а у меня нормальные адекватные ребята и дружная команда без алгосов и никаких проблем ... Выводы делайте сами. (работаю в одном очень крупном аутсорсере РФ)

  • @ChannelCheesecake

    @ChannelCheesecake

    2 ай бұрын

    Алгоритмы это способ большим популярным компаниям фильтрануть поток и сбить зп. Если работаешь в рандомной галере, как ты написал, зачем там алгоритмы спрашивать - загадка

  • @constantinegeist1854

    @constantinegeist1854

    2 ай бұрын

    ​@@ChannelCheesecake вместо литкода лучше показать типичный ынтырпрайзный код, в который добавлен говнокод, и попросить поревьюить и порефакторить. Сразу видна куча вещей о кандидате. Задрачивание на литкод для 99% компаний/проектов мимо кассы

  • @ChannelCheesecake

    @ChannelCheesecake

    2 ай бұрын

    @@constantinegeist1854 да все бы запросто такое проходили. В рамках собеса ничего интересного не уместишь

  • @constantinegeist1854

    @constantinegeist1854

    2 ай бұрын

    @@ChannelCheesecake Мы такое практикуем и отшиваем большинство кандидатов, т.к. в упор не видят проблем в коде, или замечают только небольшую часть, или начинают сильно плавать, когда спрашиваешь, как сделать лучше. Задание простое может быть: напр., в контроллере напрямую запрос в БД, в коде явно присутствует состояние гонки (напр. пример с балансом на счету) и т.п. Спрашиваешь, где в коде проблема -- полбеды, затем спрашиваешь, как бы отрефакторил, и тут тоже многие начинают плавать. Плюс куча тем для беседы отсюда может быть ("окей, напрямую в БД лезть из контроллера если не хорошо, какой паттерн бы использовал?", или "окей, здесь состояние гонки, объясни почему? за уровни серилиазации БД пояснишь?" и т.п.) У нас кандидатов на "синьоров" с рынка было пока что единицы, кто смогли всё ответить приемлемо.

  • @SuperEugeneone
    @SuperEugeneone3 ай бұрын

    Контент полезный. Только по первой задаче у сортировки временная сложность 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]] корректно за один проход?

  • @megauspexx
    @megauspexx2 ай бұрын

    По первой задаче

  • @MRtheLAGERAT
    @MRtheLAGERAT3 ай бұрын

    Забавно, что именно эти задачки мне давали год назад на собесе в яндекс)

  • @Kondratyevv

    @Kondratyevv

    3 ай бұрын

    И че, ты попал в Яндекс?

  • @MRtheLAGERAT

    @MRtheLAGERAT

    3 ай бұрын

    @@Kondratyevv нет, завалился на одном из след. этапов(

  • @freestylerveevo

    @freestylerveevo

    3 ай бұрын

    ​@@MRtheLAGERAT а че за след этап был?

  • @freestylerveevo

    @freestylerveevo

    3 ай бұрын

    ​@@MRtheLAGERATи как попал на первый собес в яндекс? если можешь, поделись, пожалуйста

  • @MRtheLAGERAT

    @MRtheLAGERAT

    3 ай бұрын

    @@freestylerveevo на всех этапах дают 2 задачи, этапов хз сколько может быть, на стажировку вроде 3-4, читал, что на другие позиции вплоть до 9 таких этапов может быть Сам попал когда набирали людей на стажировку, сначал решаешь задачи типа codeforce на яндекс контесте, если прошёл, то назначают вот такие собесы.

  • @dmit100
    @dmit1003 ай бұрын

    давай в слдщий раз что-нбдь, чего нет в neetcode roadmap, а то неинтересно даже

  • @get_out_it
    @get_out_it3 ай бұрын

    для первой задачи 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))?

  • @user-fb6wy6sq6o
    @user-fb6wy6sq6oАй бұрын

    Какие map? Вектора надо использовать во второй задаче. С этими map до 100 символов алфавита вектор быстрее будет тупо из за того, что проц хотя бы закешировать значения себе сможет. В map элементы памяти по разным адресам находятся. Это очень медленно.

  • @Smurfetti
    @Smurfetti3 ай бұрын

    А на реальной АА какой вердикт бы был? И на какой Грейд?

  • @Kondratyevv

    @Kondratyevv

    3 ай бұрын

    Что такое АА? Батарейки?

  • @w01fer86

    @w01fer86

    3 ай бұрын

    @@Kondratyevv название секции в Яндексе, когда тебя собеседует опытный собеседующий (а не рандомный разраб, у которого это первое собеседование за полгода). Обычно оценки таких секций больше весят при принятии решения о найме и грейде.

  • @zazaorg3957

    @zazaorg3957

    3 ай бұрын

    @@w01fer86 это не задачи аа

  • @JohnDoe-qe5je
    @JohnDoe-qe5je3 ай бұрын

    А смысл от такого фидбека, какая польза? Это больше на придирки похоже мимо сути дела. Если это не монтаж/склейка, то человек решил две задачи за относительно небольшое время при том в относительно стрессовых условиях (на которые смело можно списать основные недочёты), без существенных ошибок. Как надо было решать ещё лучше? И за подобное собеседование ещё предлагается заплатить круглую сумму, в чём ценность?

  • @medved3027

    @medved3027

    Ай бұрын

    Это т.н. mock interview - ненастоящее. Делается оно по просьбе интервьюируемого. На другом конце кто-то кого он знает и от кого может адекватно принимать рекомендации, чтобы прокачать скилы для реального собеседования

  • @iFATUM88
    @iFATUM88Күн бұрын

    Прикольное интервью, но хотелось бы понять: 1. На какой уровень это интервью 2. Такого рода задачи где то применяются на практике? Какие задачи решают?

  • @ex24739
    @ex247392 ай бұрын

    В 1 задачке же вместо lastItem = max... должен быть merged =..?

  • @antonantonov2995

    @antonantonov2995

    5 күн бұрын

    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]

  • @maximal5791
    @maximal57912 ай бұрын

    Где такой метод slice.Sort ??? С ним НЕ работает. Нигде не могу найти. Заменил на sort.Slice - работает

  • @lifewinsful
    @lifewinsful2 ай бұрын

    видно, что человек уже знал алгоритмы решения, просто вспоминал

  • @iamo0
    @iamo0Ай бұрын

    Собеседующий дает некоторые ответы соискателю. На самом деле это не хорошо и не плохо, можно если человек запутался подтолкнуть его и смотреть на блеск в глазах, все еще понимает он контекст или мы его потеряли. Но может быть и наоборот: кто-то пролезет на энтузиазме собеседующего. Но может быть этот энтузиазм происходит из того, что ребята друг друга знают.

  • @get_out_it
    @get_out_it3 ай бұрын

    Но ощущение конечно что чел знал какие задачи будут и паттерны

  • @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 это статистическое мнение, эти задачи сильно проще, чем те которые можно обычно увидеть

  • @young_flex3077
    @young_flex3077Ай бұрын

    16:35 ну все задачу с первой проходки не решил, в яндекс не берем

  • @megauspexx
    @megauspexx2 ай бұрын

    Быстрая сортировка сложность n*log(n), хотя собеседуемый сказал log(n)

  • @warmrew9033

    @warmrew9033

    2 ай бұрын

    O(n*n). А n*log(n) - только для среднего случая. А считают по худшему.

  • @denisshkanduk6241

    @denisshkanduk6241

    2 ай бұрын

    @@warmrew9033библеотечные сортировки (про которые и говорил собеседуемый) используют quicksort+heapsort это так называемый introsort он работает и вхудшем случае за nlogn

  • @ihorvodko767
    @ihorvodko76715 күн бұрын

    Проблема интервалов не полностью решена с точки зрения временной сложности. 1) Создайте вектор с размером = максимальному концу всех интервалов. 2) Перебрать входные интервалы и сохранить их в векторе: позиция вектора - это начало интервала, если интервал уже существует, объединить эти два интервала. 4) Взаимодействие с вектором для обработки интервалов в соответствии с логикой видео. Временная сложность равна O(n), n - количество введенных интервалов. (нет необходимости сортировать O(n*log(n))). Сортировка подсчетом выполняется за время O(n), что делает ее асимптотически быстрее, чем алгоритмы сортировки на основе сравнения, такие как быстрая сортировка. ================================================================================================= хорошее место для практики (не стесняйтесь поставить звезду :) ) github.com/IhorVodko/Hackerrank_solutions

  • @FuckAboutTransport
    @FuckAboutTransport2 ай бұрын

    Как показывает практика, деловые качества у разработчика или тимлида это 90% остальные 10% это кодинг. Ищите людей умеющих общаться, искать решения в сложных ситуациях а не классных кодеров. Вы продолжаете нанимать того кто вам не нужен для того что вам не нужно.

  • @trashmylife7832

    @trashmylife7832

    2 ай бұрын

    И что тебе эти 10% накодят? 5 лет и потом переписывать? Если не раньше

  • @user-su5by2uj6q

    @user-su5by2uj6q

    Ай бұрын

    у тим лида согласен. А разрабу зачем эти качества?

  • @trashmylife7832

    @trashmylife7832

    Ай бұрын

    @@user-su5by2uj6q чтобы легаси плодить

  • @ilyag5572

    @ilyag5572

    Ай бұрын

    ​@@trashmylife7832 именно что в работе код занимает 10% времени, нет ничего сложного напечатать код, когда ты уже расписал себе всю задачу и её решение... остаётся только кодом вывести, так что да в работе самое важное это поиск решений, потому что все решения уже есть, их нужно только найти и применить, очень вряд-ли что ты будешь первопроходцем в какой-то из задач

  • @olegscherbakov5984

    @olegscherbakov5984

    13 күн бұрын

    ​@@trashmylife7832открою один секрет: программирование - это одно сплошное переписывание, особенно в энтерпрайзе.

  • @user-qs7ex4io1z
    @user-qs7ex4io1z2 ай бұрын

    Почему тимлиду из Яндекса дают задачки для студентов

  • @nihttoter3240

    @nihttoter3240

    Ай бұрын

    Я был фронтенд разрабом мне такие задачи давали тоже. Опыта во фронте 15 лет. Ни разу за 15 лет интервалы не мёржил. Я вообще не понимаю, зачем это нужно, что фронту, что тим лиду...

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x4 күн бұрын

    Я то думал там спрашивают какой то ужас, а там чет все слишком легкое

  • @Barrrash
    @Barrrash3 ай бұрын

    Провожу подобные интервью больше шести лет. Сугубо моё личное мнение... если оценивать работу интервьювера только по выложенному видео, то (на мой взгляд) отработал не выше середины. Конечно, так оценивать не совсем правильно, т. к. кандидат уже "разогрет" и находится в контексте происходящего (не задачь, но сомой процедуры). Из того, что сразу видно, независимо от контекста: + провёл дружелюбно ("безопасно" для кандидата) + уточнял "понятно ли задание" + провеёл по положительному пути + выявил недочёты, какие-то дал найти самому + обсудили основные тест кейсы + дал фидбэк + позволил задать вопросы - технические ошибки (в сложностях, что является основой задания, если судить по уделённому вниманию) - не обсудили альтернативные решения и использование средств платформы. - не выявлены способы принятия решений (как и сами принятые решения по допустимым входным данным, ошибка или пустое множество на выходе и пр.) - кандидату не показан потенциал для проф. роста (не вызван интерес) - не запрошен фидбэк на интервью от кандидата (возможно будет позже - на отдельном звонке). Моё мнение: интервьюверу стоит озаботиться изучением вопроса о дополнительных целях интервью. Основную задачу интервью (выявить техническое соответствие кандидата, запрашиваемой позиции) с натяжной выполнил. Есть и не менее важные дополнительные цели интервью.

  • @heuretic

    @heuretic

    3 ай бұрын

    Это стандартный формат 3-го этапа Яндекса, а больше в РФ таких интервью никто не проводят, если, конечно, цель - закрыть позицию, а не найти еще один винтик в систему или почесать свое ЧСВ. >кандидату не показан потенциал для проф. роста (не вызван интерес) Компанию на Я при найме не интересует твой опыт и знания за пределами Литкода (правда, есть еще архитектурная задача), в итоге разве что можно попросить з/п ближе к правому концу вилки. >не запрошен фидбэк на интервью от кандидата По окончании предлагается форма обратной связи. Можно там потыкать, что-то написать про проблемы. По-моему, результат идет в /dev/null.

  • @Barrrash

    @Barrrash

    3 ай бұрын

    @heuretic "а больше в РФ таких интервью никто не проводят, если, конечно, цель - закрыть позицию, а не найти еще один винтик в систему или почесать свое ЧСВ." Не уверен, что я правильно понял что Вы хотели сказать в этой части. На всякий случай поясню некоторые моменты. - Интервью с написанием кода в РФ проводит не только Яндекс. Как я уже написал - у нас такие интервью. Только у нас это второй (и как правило последний) этап. Он объединён с выявлением софт-скилов, общей технической беседой и подробным рассказом о процессах в компании или ответом на вопросы кандидата. Первый этап - короткий технический "скрининг" по телефону с целью принятия решения о втором этапе (в том числе кандидатом). - Что касается "почесать ЧСВ" на интервью - это самое плохое, что может делать интервьювер (таких - сразу в лес :)). - Про закрытие вакансии или поиск "винтика в систему". Как раз поиском винтиков (в том числе по довольно специфическим запросам) команды (в аджайл) и отдела (в матричной системе) я занимался. Написание и обсуждение кода отлично подходит для таких задач (конечно, только им не обойтись, о чём я и писал в оригинальном комменте). На моих интервью в том числе можно гуглить (как и в рабочем процессе). - Про "вызвать интерес": тут у Яндекса, конечно, особое положение - к ним многие уже за имя готовы идти. Для компаний без имени стоит задача заинтересовать кандидата. Одна из лучших мотиваций, как показывает моя практика - именно вызвать неподдельный интерес. Это даже деньгами не всегда перекупается. :) - За информацию о наличии фидбэка спасибо - моя догадка о том, что он собирается позже была верна.

  • @vladikvelikiy

    @vladikvelikiy

    2 ай бұрын

    ​@@Barrrashчепуху какую-то написал, ЧСВ потешил своё очевидно

  • @spinacker16
    @spinacker16Ай бұрын

    дали тимлиду два изяна... а мне хард впаяли с дп на 50 строк кода.

  • @vp_arth
    @vp_arth2 ай бұрын

    А в go нет структуры множество(set)? На первый взгляд цикл сдвига l кажется лишним. Ситуация, которую он решает не может произойти.

  • @leonidfilippov9698

    @leonidfilippov9698

    24 күн бұрын

    Есть map[string]struct{}, тот же фунционал

  • @vp_arth

    @vp_arth

    24 күн бұрын

    Не совсем, к словарю нужно велосипедить методы - пересечение, объединение множеств, вычитание и т.п. Для обеспечения уникальности подойдёт, да.

  • @comparison9436
    @comparison943623 күн бұрын

    Чел идет на тим лида, использует сортировку и говорит скорость линейная🤦🏻 как их вообще рассматривают с такими знаниями?

  • @TheCharlieGordon
    @TheCharlieGordon2 ай бұрын

    Т.е. в яндексе занимаются не интерпрайз программированием, а пишут алгоритмы? Ну-ну.

  • @Kelb90
    @Kelb903 ай бұрын

    У первой задачи не линия по памяти, а константа, потому что пространственная сложность относится только к промежуточным данным. Странно, что интервьюер это не подметил. По сортировке скорее всего оговорился, потому что странно думать про лог(n)

  • @radiosh66

    @radiosh66

    3 ай бұрын

    Поделитесь плиз ссылочкой на источник, что память на результат не учитывается в пространственной сложности.

  • @Kelb90

    @Kelb90

    3 ай бұрын

    ​@@radiosh66 Привет. Мы оцениваем алгоритм, а не среду с которой этот алгоритм взаимодействует для ввода/вывода, иначе минимальная пространственная сложность была бы линией всегда. Мы не используем массив для вычислений, поэтому учитываться в пространственной сложности он не будет. Можно почитать, например, в computational complexity Димитроу.

  • @radiosh66

    @radiosh66

    3 ай бұрын

    @Kelb90 спасибо за разъяснения, осталось на литкоде теперь всех переучить новому подходу к оценке пространственной сложности, т.к. на моей памяти во всех объяснениях учитывалась вся новая память, которую аллоцирует функция.

  • @pav28amur

    @pav28amur

    3 ай бұрын

    @@radiosh66 да, в литкоде может быть требование выполнять in-space, когда нельзя делать промежуточный массив и возвращать его. Тогда подход к решение сильно меняется.

  • @user-zi3er5oi5y
    @user-zi3er5oi5yАй бұрын

    Именно из-за таких собеседований я каждый раз отказываю рекрутерам яндекса

  • @get_out_it
    @get_out_it3 ай бұрын

    По поводу второй задачи. -забавно получилось что интервьюер упомянул что 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. Что считается константой при размере входа стремящегося к бесконечности

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x4 күн бұрын

    Стопэ, вторая задача это по моему easy с leetcode

  • @dimama1551
    @dimama1551Ай бұрын

    Наш брат головами таких в школе мел с доски вытирал

  • @HeczZots
    @HeczZots25 күн бұрын

    в цикле будет паника если в матрице пустые массивы без элементов

  • @romanfomin8109
    @romanfomin81093 ай бұрын

    А какие это задачи на литкоде? Чтоб самому порешать

  • @wowyomad

    @wowyomad

    3 ай бұрын

    Интервалы - 56 Самая длинная подстрока - 3

  • @UserSo4reUsu75ry
    @UserSo4reUsu75ry3 ай бұрын

    У меня бы 30 минут ушло бы на решение одной задачи. Надо больше решать ? Я уже больше года решаю задачи, но быстрее я их решать не стал.

  • @victorianking9042

    @victorianking9042

    3 ай бұрын

    надо перед собесом их всех заучить, а после оставить до следующего собеса.

  • @user-li6qv1mv7b
    @user-li6qv1mv7b2 ай бұрын

    По первой задаче не совсем понимаю почему сложность на этапе мержа интервалов оказалась O(N)? Остальные интервалы то тоже нужно учесть и смержить с остальными, а это уже возрастает до квадратичной зависимости - что огромная разница

  • @igorf243

    @igorf243

    2 ай бұрын

    для этого можно пройти по всему массиву всего один раз и выполнить по одной операции над каждым значеием из отрезка, в худшем случае будет O(2N) == O(N)

  • @user-li6qv1mv7b

    @user-li6qv1mv7b

    2 ай бұрын

    ​@@igorf243 "Дан массив интервалов, объедините все пересекающиеся интервалы и верните массив непересекающихся" Ну? Имеется же в виду что у нас может быть несколько объединенных интервалов, которые нужно вернуть А вернуть мы сможем, когда совершим операции над всеми НЕобъединенными интервалами По итогу выполнение этой задачи - возвращается один только массив, с которым ищется возможные пересечения

  • @juhikoinb1403

    @juhikoinb1403

    Ай бұрын

    @@user-li6qv1mv7bесли массив отсортирован, то нам надо просто проверять пересечение с предыдущим: пересекаются - объединяем, не пересекаются - отправляем на выход и начинаем собирать новый. Чистейший O(N).

  • @Miclell
    @Miclell25 күн бұрын

    Как можно распинаться пол часа при решении столь лёгкой задачи то?

  • @user-zp7ty5yh7w

    @user-zp7ty5yh7w

    24 күн бұрын

    Вы идиот?

  • @user-fh3wg8oj6q
    @user-fh3wg8oj6q3 ай бұрын

    Чет легенькие задачи

  • @noname-bi7ve
    @noname-bi7ve2 ай бұрын

    алгодрочеры не нужны

  • @user-sc9hv7vy4z
    @user-sc9hv7vy4z3 ай бұрын

    Очень простые задачи.

  • @w01fer86

    @w01fer86

    3 ай бұрын

    Ты не поверишь, сколько кандидатов надо перебрать прежде, чем найдёшь кого-то, кто их решит

  • @D-gw4vj

    @D-gw4vj

    2 ай бұрын

    @@w01fer86 вау найти того, кто может решать задачи, но потом двигать и красить кнопку.

  • @wall-wrecker-my6ss
    @wall-wrecker-my6ss3 ай бұрын

    Да ладно ребят, там склейка на монтаже. Вы думаете чел просто сел и решил. Конечно нет. Может договорняк, ради контента

  • @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 ай бұрын

    Легко решается

  • @defkill1erb
    @defkill1erb2 ай бұрын

    Как мы дожили до того чтобы писать код на интервью в блокноте с подсветкой синтаксиса языка ? 😮

  • @alekseifilippov9236

    @alekseifilippov9236

    Ай бұрын

    В колледже информатики когда учил синтаксис писал на бумажке и сдавал преподу или мелом на доске, а потом уже пересаживались за компы

  • @alexandrcorbin1709
    @alexandrcorbin17092 ай бұрын

    Очередное доказательство, что если повернуть стол и собеседующего превратить в собеседуемого, то он просто не пройдет собес, а завалить его на нем легче легкого).

  • @wonderful2122
    @wonderful21223 ай бұрын

    Обе задачи имеют средний уровень на leetcode.

  • @sb9185

    @sb9185

    3 ай бұрын

    Не изи)

  • @nicholasspezza9449
    @nicholasspezza94493 ай бұрын

    Чот Баламут постарел, в яндексе из него все соки выжимают. Возвращайся в Озон!

  • @vladimir_balun_programming

    @vladimir_balun_programming

    3 ай бұрын

    Побриться, подстричься и как новенький!

  • @artemkas4191

    @artemkas4191

    3 ай бұрын

    Реально чот похудел вообще

  • @user-mn2zo4tx8n

    @user-mn2zo4tx8n

    3 ай бұрын

    озон овно еще хуже

  • @ourtube5191

    @ourtube5191

    3 ай бұрын

    Он просто тренеруетсч

  • @ChannelCheesecake

    @ChannelCheesecake

    2 ай бұрын

    Глаза пустые

  • @Boka-and-Joka
    @Boka-and-Joka2 ай бұрын

    все в яндексе и сам яндекс - дно поганое. как компания, так и люди в ней. да еще и куколды)

  • @alexlightweight

    @alexlightweight

    2 ай бұрын

    да, яндекс уже лет 10 как опустился, самое интересное что там ЗП чуть ниже средних по рынку, но все туда рвутся почему то, подозреваю просто хотят эту ачивку не более ... ))))))

  • @user-je8yv6gq7o
    @user-je8yv6gq7oАй бұрын

    Это нумерология какая то что ли? Или астрология?

  • @dailys7391
    @dailys73913 ай бұрын

    Чет туго пошло у парня

  • @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 ай бұрын

    ну и видно что чел готовился и решал уже эти задачи потому что. сходу для первой задачи определил что нужно сортировать, для второй задачи сходу вопсользовался паттерном скользящего окна.

  • @JohnCena-lv3ew
    @JohnCena-lv3ew2 ай бұрын

    Хахаха. Порекомендуем тим лиду яндекса (если он данные задачи видел первый раз и это все не "актерская игра") больше сидеть на литкоде. Если таки он видел это первый раз, то непонятно как в яндексе обычные люди становятся (давайте только не будем уподобляться самому яндексу, и скажет что обычные люди с точки зрения данных алгоритмических задач) тим лидами. Потому что, то, что видел и в чем участвовал я не было таким простым. видимо рядята любят тащить себе в команды не кого-то с "улицы", а своего проверенного, а остальных валят. неприятное впечатление от яндекса.

  • @ChannelCheesecake

    @ChannelCheesecake

    2 ай бұрын

    А тебе какие задачи дали? Ну эти оч простые, мб с наймом беда сейчас

  • @stepandemin5836
    @stepandemin58363 ай бұрын

    100% постановка. Вам, ребята в театральный надо ;)

  • @brainrainz
    @brainrainz3 ай бұрын

    слабенько, хотя бы 1 medium бы дали

  • @get_out_it

    @get_out_it

    3 ай бұрын

    это медиум на литкоде

  • @endaksi_channel
    @endaksi_channel3 ай бұрын

    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)/

Келесі