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

Поделиться
HTML-код
  • Опубликовано: 29 дек 2024

Комментарии • 291

  • @iamo0
    @iamo0 8 месяцев назад +23

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

  • @maksimmityagin7242
    @maksimmityagin7242 10 месяцев назад +8

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

    • @НикитаГусаров-л5ъ
      @НикитаГусаров-л5ъ 10 месяцев назад +2

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

    • @maksimmityagin7242
      @maksimmityagin7242 10 месяцев назад

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

  • @alexandreshmelev4170
    @alexandreshmelev4170 10 месяцев назад +18

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

    • @vladimir_balun_programming
      @vladimir_balun_programming 10 месяцев назад +2

      Да, это было бы более оптимально, но кандидат решил именно так

    • @ourdestruction6851
      @ourdestruction6851 10 месяцев назад +5

      разве?
      допустим у нас строка abcadef, к примеру
      тогда встретив на третьем символе 'a' мы бы перенесли левый указатель сразу на d, таким образом не учтя самую длинную строку без повторений - bcadef
      если я конечно вас верно поняла, поправьте если нет

    • @alexandreshmelev4170
      @alexandreshmelev4170 10 месяцев назад

      ​@@ourdestruction6851Если так делать то зачем вообще хранить позицию встретившегося символа? Конечно же мы перемещаем левый указатель на 1 от позиции, сохранённой в таблице. Ну и надо не забыть обновить это значение, добавив туда позицию повторно встретившегося символа

    • @GeatMaximus
      @GeatMaximus 10 месяцев назад

      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, иначе можно ошибочно переместить его левее текущей позиции

  • @JohnDoe-qe5je
    @JohnDoe-qe5je 10 месяцев назад +35

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

    • @Dimoniada
      @Dimoniada 3 месяца назад

      Надо как робот решать всё)

  • @mayboroda
    @mayboroda 10 месяцев назад +84

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

    • @Skilljam
      @Skilljam 9 месяцев назад +2

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

    • @alexeypetrov8543
      @alexeypetrov8543 8 месяцев назад

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

    • @antoneltchaninov2246
      @antoneltchaninov2246 7 месяцев назад

      Мне сразу предлагали случай данных, который приведет к ошибке. Причём, писал на го, а собесила питонщица.
      Другой раз по стандартной библиотеке подсказали.

  • @СергейКаляев-ы7п
    @СергейКаляев-ы7п 9 месяцев назад +42

    Сложность сортировки log(n)👍, отлично

    • @bbrother92
      @bbrother92 9 месяцев назад

      а какая ?

    • @СергейКаляев-ы7п
      @СергейКаляев-ы7п 9 месяцев назад

      @@bbrother92 n log(n), сортировка

    • @alexeysharyy8623
      @alexeysharyy8623 9 месяцев назад +7

      @@bbrother92 теоретический максимум(доказывается при помощи дерева решений) в алгоритмах сортировки сравнением это Ω(n*log(n))

    • @bbrother92
      @bbrother92 9 месяцев назад +4

      @@alexeysharyy8623 ну да log(n) это бинарный поиск. а для сортировки слишком революционно. А напомните кто так знатно ошибся?

    • @dmitrysapelnikov
      @dmitrysapelnikov 7 месяцев назад +2

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

  • @romanarxxy
    @romanarxxy 8 месяцев назад +7

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

    • @george4619
      @george4619 6 месяцев назад

      Хотел это написать, но нашел ваш комментарий

    • @timur2887
      @timur2887 4 месяца назад

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

  • @Immortanjoe789
    @Immortanjoe789 4 месяца назад +3

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

  • @neruinfo166
    @neruinfo166 10 месяцев назад +5

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

  • @DimGlin
    @DimGlin 8 месяцев назад +1

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

  • @nikolaifedorov685
    @nikolaifedorov685 10 месяцев назад +77

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

    • @happyzombie8588
      @happyzombie8588 9 месяцев назад +6

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

    • @OlegYemelyanov
      @OlegYemelyanov 9 месяцев назад +6

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

    • @SaltyRain1
      @SaltyRain1 8 месяцев назад +22

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

    • @nikolaifedorov685
      @nikolaifedorov685 8 месяцев назад +30

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

    • @SaltyRain1
      @SaltyRain1 8 месяцев назад

      @@nikolaifedorov685 ну, вот я и спрашиваю, ты на HTML кодишь? Или «готовые библиотечки» для всего используешь, и понятия не имеешь, что там у тебя под капотом варится

  • @yaroslavlymar6599
    @yaroslavlymar6599 8 месяцев назад +5

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

    • @ArtemAleksashkin
      @ArtemAleksashkin Месяц назад

      Да, травоядненько на видео

    • @Constructor11
      @Constructor11 12 дней назад

      яндекс конченый в этом плане. И денег не платит, и дрючит по хард задачам

  • @ДенисЛазарев-б8ш
    @ДенисЛазарев-б8ш 8 месяцев назад

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

  • @SuperEugeneone
    @SuperEugeneone 10 месяцев назад +38

    Контент полезный. Только по первой задаче у сортировки временная сложность O(n log n), а не O(log n). Суммарная сложность для решения, соответственно, тоже O(n log n)

    • @vladimir_balun_programming
      @vladimir_balun_programming 10 месяцев назад +2

      Да, действительно, видимо я не расслышал корректно в тот момент - сложность O(n log n)

    • @valeryzeryl9145
      @valeryzeryl9145 10 месяцев назад

      ​@@vladimir_balun_programmingа можете подсказать, почему вообще такая сложность?
      Есть 2 сценария:
      1) сортируем массив (сложность n*log2n (быстрая, в среднем) + log n, поиск)
      2) просто складываем все что видим, сложность n. Сортировки не требуется
      Итого, выгоднее тупо сложить массивы, если n>3

    • @ИванЕвдокимов-л6ь
      @ИванЕвдокимов-л6ь 10 месяцев назад

      сложность О-большое - это наихудший сценарий. А 2ой пункт у вас - это наоборот наилучший сценарий@@valeryzeryl9145

    • @ИльяЛысенко-ц6ь
      @ИльяЛысенко-ц6ь 10 месяцев назад +1

      ​@@valeryzeryl9145могу ошибаться, но чисто интуитивно, если не отсортировать, придется сравнивать каждый последующий интервал со всеми уже объединенными, соответственно сложность до 0.5n^2 вырастает

    • @w01fer86
      @w01fer86 10 месяцев назад +1

      @@valeryzeryl9145 как ты сложишь [[1,10], [20,30], [5,15]] корректно за один проход?

  • @TTT111-T
    @TTT111-T 5 месяцев назад

    Ошибка во второй задаче 33 строка. for store[right] > 1. Пример строки, которая обработается с ошибкой: abcabbcd. Когда left будет 2, а right 5, нужно будет left довести до right, иначе две подряд идущие b создадут ошибку.

  • @designed6102
    @designed6102 10 месяцев назад +23

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

  • @Daniil_Chu
    @Daniil_Chu 10 месяцев назад +21

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

    • @картонобзоры
      @картонобзоры 10 месяцев назад +9

      Открой окно

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад +1

      Интервал с закрытым концом. Проблема в чём?

    • @arsenypogosov7206
      @arsenypogosov7206 9 месяцев назад

      @@constantinegeist1854 В том что у интервалов концы не закрыты. Концыу закрыты у отрезков. Тоже смутило. Можно было использовать собирательное слово промежуток.

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад +1

      @@arsenypogosov7206 не знаю, зачем в русском языке понапридумали кучи терминов, если суть одна... в английском, если не ошибаюсь, всегда просто interval: open interval, closed interval, left-open interval, right-open interval
      а так, просто дрочь на терминологию, как по мне
      хотя да, может быть недопонимание

    • @arsenypogosov7206
      @arsenypogosov7206 9 месяцев назад

      @@constantinegeist1854 в целом да, согласен с вами.

  • @tsttst3179
    @tsttst3179 9 месяцев назад

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

  • @hsqlk
    @hsqlk Месяц назад +2

    Эфемерность собеседований просто поражает, смысл их вообще тогда проводить....

  • @mayboroda
    @mayboroda 10 месяцев назад +5

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

    • @Varkatel
      @Varkatel 10 месяцев назад +2

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

    • @maxnov4120
      @maxnov4120 10 месяцев назад +2

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

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад +2

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

  • @АртемАрте-г5х
    @АртемАрте-г5х 9 месяцев назад +1

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

    • @forbidden_content
      @forbidden_content 9 месяцев назад

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

  • @ArtemAleksashkin
    @ArtemAleksashkin Месяц назад

    1 задача sort.Slice и нет функции max 👍 я проверил код - не работает. Ласт айтем переопределяется всякий раз. Мне все это странно.

  • @RomanKoshetov
    @RomanKoshetov 4 месяца назад

    intervals = [[1, 6], [1, 3], [8, 10], [15, 18]]
    temp = []
    intervals.sort()
    ans = [intervals[0]]
    for i in range(1, len(intervals)):
    temp = ans[-1]
    current = intervals[i]
    if current[0]

  • @Smurfetti
    @Smurfetti 10 месяцев назад +5

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

    • @Kondratyevv
      @Kondratyevv 10 месяцев назад +2

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

    • @w01fer86
      @w01fer86 10 месяцев назад

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

    • @zazaorg3957
      @zazaorg3957 10 месяцев назад

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

  • @vp_arth
    @vp_arth 10 месяцев назад +4

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

    • @leonidfilippov9698
      @leonidfilippov9698 8 месяцев назад

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

    • @vp_arth
      @vp_arth 8 месяцев назад

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

  • @MRtheLAGERAT
    @MRtheLAGERAT 10 месяцев назад +16

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

    • @Kondratyevv
      @Kondratyevv 10 месяцев назад

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

    • @MRtheLAGERAT
      @MRtheLAGERAT 10 месяцев назад +1

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

    • @freestylerveevo
      @freestylerveevo 10 месяцев назад

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

    • @freestylerveevo
      @freestylerveevo 10 месяцев назад

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

    • @MRtheLAGERAT
      @MRtheLAGERAT 10 месяцев назад

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

  • @ihorvodko767
    @ihorvodko767 8 месяцев назад

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

  • @DubinArtur
    @DubinArtur 9 месяцев назад +1

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

    • @mrt24739
      @mrt24739 9 месяцев назад

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

  • @TheBokiXD
    @TheBokiXD 2 месяца назад

    Вот что получилось на js, первая задача:
    function getIntervals(intervals) {
    intervals = intervals.sort((a ,b) => a[0] - b[0]);
    const result = [];
    let actualInterval = intervals[0];
    for (let i = 1; i < intervals.length; i++) {
    const current = intervals[i];
    if (actualInterval[0] >= current[0] && actualInterval[0] = current[0] && actualInterval[1]

  • @DenisBrilliantov
    @DenisBrilliantov 5 месяцев назад +1

    Тесть если ты уже знаешь алгоритм то это не нужно говорить ?

  • @livemy
    @livemy 10 месяцев назад

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

  • @mrt24739
    @mrt24739 9 месяцев назад

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

    • @antonantonov2995
      @antonantonov2995 7 месяцев назад

      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
    @maximal5791 10 месяцев назад +2

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

  • @Ser_UFL
    @Ser_UFL 10 месяцев назад +3

    Во второй задаче при нахождении неуникального символа я бы ещё проверял длину отрезка от левого указателя до конца строки и сравнивал его с длиной текущей самой длинной строки.
    Условно: строка на 20 символов. Все символы были уникальны до 11го. Нам нет смысла дальше проверять

    • @ВячеславБурлаков-м1л
      @ВячеславБурлаков-м1л 9 месяцев назад +1

      не верно.
      Например, строка s = abcdefaglm: первые 6 символов уникальны, потому встречается символ a, отбрасываем s[0] и теперь уникальная максимальная строка "bcdefaglm" длинною 9

    • @Ser_UFL
      @Ser_UFL 9 месяцев назад

      @@ВячеславБурлаков-м1л перечитай ещё раз, что я написал.

    • @Ser_UFL
      @Ser_UFL 9 месяцев назад

      @@ВячеславБурлаков-м1л ок, пример с 20 и 11 был неверен. Но проверка верна

  • @timur2887
    @timur2887 4 месяца назад

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

  • @get_out_it
    @get_out_it 10 месяцев назад +8

    для первой задачи time complexity задачи = сложности сортировки - это nlogn а не линейная как сказали на интервью

    • @undefined4992
      @undefined4992 10 месяцев назад

      Он потом поправился

    • @warmrew9033
      @warmrew9033 9 месяцев назад

      @@undefined4992 он потом сказал log(n) вместо n*log(n) что тоже неправильно, потому что в худшем у квиксорта будет O(n*n)

    • @TheCharlieGordon
      @TheCharlieGordon 9 месяцев назад

      На что влияет это знание, если сортировки не избежать?

    • @undefined4992
      @undefined4992 9 месяцев назад

      @@TheCharlieGordon на непосредственно оценку времени работы, это и есть финальный ответ на вопрос

    • @TheCharlieGordon
      @TheCharlieGordon 9 месяцев назад

      @@undefined4992 а что даст эта оценка, если сортировка неизбежна? Типа, какая разница, сколько стоит товар, если ты в любом случае вынужден его купить? Т.е. как в этом случае поможет знание - O(n) или O (n*log(n))?

  • @iFATUM88
    @iFATUM88 7 месяцев назад +1

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

  • @Денис-ж3ф5р
    @Денис-ж3ф5р 7 месяцев назад +1

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

  • @BoQbL1k
    @BoQbL1k 6 месяцев назад

    Что за задачи такие где оценить сложность задачи уже сложно )

  • @danilbanan406
    @danilbanan406 10 месяцев назад +2

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

  • @kOzae6bI4
    @kOzae6bI4 7 месяцев назад

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

  • @alexlightweight
    @alexlightweight 10 месяцев назад +30

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад

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

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад +13

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

    • @ChannelCheesecake
      @ChannelCheesecake 9 месяцев назад

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

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад +6

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

    • @romanchuk_vlog
      @romanchuk_vlog 7 месяцев назад

      Абсолютно согласен

  • @лерка-л2ж
    @лерка-л2ж 3 месяца назад

    Я нифига не могу собраться на собесах, даже концепции которыми пользовался с трудом могу вспомнить и реализовать

  • @get_out_it
    @get_out_it 10 месяцев назад +13

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

    • @undefined4992
      @undefined4992 10 месяцев назад +2

      Эти задачи есть на литкоде, вполне вероятно, что он их уже решал

    • @animeai-content
      @animeai-content 10 месяцев назад +1

      тут задачи достаточно простые

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад +1

      Это очень простые задачи, алё

    • @get_out_it
      @get_out_it 10 месяцев назад +3

      @@ChannelCheesecake это ваше субъективное мнение

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад

      @@get_out_it это статистическое мнение, эти задачи сильно проще, чем те которые можно обычно увидеть

  • @dodibilder
    @dodibilder 5 месяцев назад

    Че за бред? Я думал на мид+ собесе просить будут написать сервис по тз, а тут алгоритмы, так еще и сложность никакая...первая задача это уровень даде не стажера

  • @Sheri313
    @Sheri313 2 месяца назад +1

    Как достал этот Яндекс со своими алгоритмами на собесах

    • @353_YK_RF
      @353_YK_RF Месяц назад +1

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

  • @ЯрикЛапаыы
    @ЯрикЛапаыы 10 месяцев назад +2

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

    • @nihttoter3240
      @nihttoter3240 8 месяцев назад +6

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

  • @mormeoi
    @mormeoi 5 месяцев назад

    Первая на сортировку, вторая на плавающее окно. Leetcode уровень easy. Даже решение смотреть не стал, тривиально все.

  • @iptashR
    @iptashR 10 месяцев назад +2

    0:43. Was machst du?

  • @megauspexx
    @megauspexx 10 месяцев назад

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

    • @warmrew9033
      @warmrew9033 9 месяцев назад

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

    • @denisshkanduk6241
      @denisshkanduk6241 9 месяцев назад

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

  • @OlegToropov-uj6jh
    @OlegToropov-uj6jh 7 месяцев назад

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

  • @nmg_prm
    @nmg_prm 10 месяцев назад +1

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

  • @nnnabbot
    @nnnabbot 10 месяцев назад +3

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

    • @timur2887
      @timur2887 4 месяца назад

      литкод и аналоги в помощь)

  • @dmit100
    @dmit100 10 месяцев назад

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

  • @HeczZots
    @HeczZots 8 месяцев назад +1

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

  • @Barrrash
    @Barrrash 10 месяцев назад +11

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

    • @heuretic
      @heuretic 10 месяцев назад +1

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

    • @Barrrash
      @Barrrash 10 месяцев назад

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

    • @vladikvelikiy
      @vladikvelikiy 10 месяцев назад

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

    • @antoneltchaninov2246
      @antoneltchaninov2246 7 месяцев назад

      У меня в Я было два литкод интервью с рандомными и одно с потенциальным тимлидом. Про процессы я спрашивал сам, человек от ответа ушёл, видимо, было лень обсуждать что-то после того, как уже решил, что не подхожу. Фидбек не спросил ни один.

    • @Barrrash
      @Barrrash 7 месяцев назад

      ​@@antoneltchaninov2246Печально. Подобная лень портит впечатление о компании. Имхо, собес нужно в любом случае проводить до логической точки и отвечать - тоже, раз "разрешил" задавать вопросы :)

  • @UserSo4reUsu75ry
    @UserSo4reUsu75ry 10 месяцев назад +2

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

    • @victorianking9042
      @victorianking9042 10 месяцев назад

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

  • @tr3mendous24
    @tr3mendous24 6 месяцев назад +1

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

  • @Денис-ж3ф5р
    @Денис-ж3ф5р 7 месяцев назад

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

  • @thevirusnvgm2518
    @thevirusnvgm2518 10 месяцев назад

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

    • @thevirusnvgm2518
      @thevirusnvgm2518 10 месяцев назад +2

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

    • @ВладПалаев-з4н
      @ВладПалаев-з4н 10 месяцев назад

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

    • @gzhegow
      @gzhegow 10 месяцев назад

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

  • @wall-wrecker-my6ss
    @wall-wrecker-my6ss 10 месяцев назад +54

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

    • @blabla-f7n
      @blabla-f7n 10 месяцев назад +21

      Ну хз. Это я решаю литкод 4 месяца. И сразу же решил эти задачи. Врядли постанова

    • @dieff_automation
      @dieff_automation 10 месяцев назад +1

      ​@@blabla-f7nда там видно склейку. Если прям с нуля там минут 40 надо, если не гуглит, а с помощью gpt 4 версии, она решается за 3 минуты, лучшим алгоритмом, плюс все расписыаается.

    • @404Negative
      @404Negative 10 месяцев назад +10

      задачи элементарные, что их решать. просто 2 простейшие свёртки и всё

    • @EsinaViwn9
      @EsinaViwn9 10 месяцев назад +1

      ​@@404Negative что значит свертка?

    • @constantinegeist1854
      @constantinegeist1854 9 месяцев назад

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

  • @wonderful2122
    @wonderful2122 10 месяцев назад +1

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

    • @sb9185
      @sb9185 10 месяцев назад +3

      Не изи)

  • @nicholasspezza9449
    @nicholasspezza9449 10 месяцев назад +9

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

  • @klawakrokk3989
    @klawakrokk3989 Месяц назад

    Чушь полная. Работа ежедневная не так строится и не так проверяется

  • @young_flex3077
    @young_flex3077 8 месяцев назад

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

  • @get_out_it
    @get_out_it 10 месяцев назад +2

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад

      Какая разница

    • @get_out_it
      @get_out_it 10 месяцев назад

      @@ChannelCheesecake большая разница, если ты не знаешь конечно множество символов то ты не можешь в решении зарезервировать массив на 26 символов к примеру

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад

      @@get_out_it во-первых интервьюер сказал, что там не только буквы, а ASCII, во-вторых делай Map и не думай над таким

    • @denisshkanduk6241
      @denisshkanduk6241 9 месяцев назад

      @@get_out_itреч о резервировании не шла, символы подсчитываются в рантайме.char почти везеде 1 байт = 256 символов окей даже если мы подключим крутые библиотеки со всем возможными языками мира там не наберется и 2*10^9 а это обычный int. Что считается константой при размере входа стремящегося к бесконечности

  • @megauspexx
    @megauspexx 10 месяцев назад

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

  • @romanfomin8109
    @romanfomin8109 10 месяцев назад

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

    • @wowyomad
      @wowyomad 10 месяцев назад +2

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

  • @TheCharlieGordon
    @TheCharlieGordon 9 месяцев назад +3

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

  • @lifewinsful
    @lifewinsful 10 месяцев назад +3

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

  • @muted9877
    @muted9877 10 месяцев назад

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

  • @Boka-and-Joka
    @Boka-and-Joka 10 месяцев назад +6

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

    • @alexlightweight
      @alexlightweight 10 месяцев назад +3

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

    • @timur2887
      @timur2887 4 месяца назад +1

      🤣 куколды?) в смысле смотрят, как их сотрудников натягивает к себе Тинькофф и наслаждаются?)

  • @Kelb90
    @Kelb90 10 месяцев назад

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

    • @radiosh66
      @radiosh66 10 месяцев назад

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

    • @Kelb90
      @Kelb90 10 месяцев назад

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

    • @radiosh66
      @radiosh66 10 месяцев назад +1

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

    • @pav28amur
      @pav28amur 10 месяцев назад

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

  • @comparison9436
    @comparison9436 8 месяцев назад +3

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

    • @АлександрИванов-х1ю
      @АлександрИванов-х1ю 6 месяцев назад +3

      Где ты тут увидел что чел идёт на Тим Лида

    • @grapesmusic03
      @grapesmusic03 4 месяца назад

      Нет, это тим лид проведёт собеседование

    • @timur2887
      @timur2887 4 месяца назад +1

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

  • @ЕвгенийП-д8л
    @ЕвгенийП-д8л 10 месяцев назад +3

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

    • @w01fer86
      @w01fer86 10 месяцев назад +3

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

    • @D-gw4vj
      @D-gw4vj 10 месяцев назад

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

  • @wowxd9893
    @wowxd9893 9 месяцев назад +1

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

  • @Miclell
    @Miclell 8 месяцев назад

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

  • @iamo0
    @iamo0 8 месяцев назад

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

  • @АзаматханАрифханов
    @АзаматханАрифханов 10 месяцев назад +3

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

  • @Ryurix
    @Ryurix 4 месяца назад

    Задачи гавно, к реальной жизни отношения не имеют.

  • @brainrainz
    @brainrainz 10 месяцев назад +1

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

    • @get_out_it
      @get_out_it 10 месяцев назад +1

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

  • @ВадимКлимов-й1щ
    @ВадимКлимов-й1щ 9 месяцев назад +3

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

  • @alexandrcorbin
    @alexandrcorbin 9 месяцев назад +2

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

  • @noname-bi7ve
    @noname-bi7ve 10 месяцев назад +6

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

  • @emotional_stuff
    @emotional_stuff 4 месяца назад

    Звуки глотков еще громче бы сделать ;)

  • @stepandemin5836
    @stepandemin5836 10 месяцев назад +3

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

  • @spinacker16
    @spinacker16 8 месяцев назад

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

  • @JohnCena-lv3ew
    @JohnCena-lv3ew 10 месяцев назад +1

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 месяцев назад

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

  • @IvanGalkin-f8m
    @IvanGalkin-f8m 10 месяцев назад

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

    • @igorf243
      @igorf243 10 месяцев назад

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

    • @IvanGalkin-f8m
      @IvanGalkin-f8m 9 месяцев назад

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

    • @juhikoinb1403
      @juhikoinb1403 9 месяцев назад

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

  • @НиколайНиколаевич-т6я
    @НиколайНиколаевич-т6я 8 месяцев назад

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

  • @defkill1erb
    @defkill1erb 10 месяцев назад

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

    • @alekseifilippov9236
      @alekseifilippov9236 8 месяцев назад

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

  • @evgadamov
    @evgadamov 6 месяцев назад

    Ого, не знал, что Щербаков в айти вкатился :)

  • @dailys7391
    @dailys7391 10 месяцев назад

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

    • @dibehemoth401
      @dibehemoth401 10 месяцев назад +6

      Нифига се туго 2 медиум за 37 минут...

    • @sb9185
      @sb9185 10 месяцев назад +5

      ​​@@dibehemoth401Так это изи уровень

    • @dibehemoth401
      @dibehemoth401 10 месяцев назад +1

      @sb9185 это обе медиум литкод. Хз как в яндексе внутри считают, конечно.

    • @sb9185
      @sb9185 10 месяцев назад

      646?@@dibehemoth401

    • @get_out_it
      @get_out_it 10 месяцев назад +6

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

  • @dimama1551
    @dimama1551 8 месяцев назад

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

  • @endaksi_channel
    @endaksi_channel 10 месяцев назад

    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 10 месяцев назад

      Стримы это очень круто. Стримы это хорошо забытое прошлое и счастливое будущее.

    • @vp_arth
      @vp_arth 10 месяцев назад

      s/second.end/Math.max(first.end, second.end)/