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

Поділитися
Вставка
  • Опубліковано 11 січ 2025

КОМЕНТАРІ • 293

  • @iamo0
    @iamo0 9 місяців тому +23

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

  • @Immortanjoe789
    @Immortanjoe789 5 місяців тому +6

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

  • @maksimmityagin7242
    @maksimmityagin7242 10 місяців тому +8

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

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

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

    • @maksimmityagin7242
      @maksimmityagin7242 10 місяців тому

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

  • @mayboroda
    @mayboroda 11 місяців тому +86

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

    • @Skilljam
      @Skilljam 10 місяців тому +2

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

    • @alexeypetrov8543
      @alexeypetrov8543 8 місяців тому

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

    • @antoneltchaninov2246
      @antoneltchaninov2246 7 місяців тому

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

  • @JohnDoe-qe5je
    @JohnDoe-qe5je 11 місяців тому +36

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

    • @Dimoniada
      @Dimoniada 3 місяці тому

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

  • @alexandreshmelev4170
    @alexandreshmelev4170 11 місяців тому +18

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

    • @vladimir_balun_programming
      @vladimir_balun_programming 11 місяців тому +2

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

    • @ourdestruction6851
      @ourdestruction6851 11 місяців тому +5

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

    • @alexandreshmelev4170
      @alexandreshmelev4170 11 місяців тому

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

    • @GeatMaximus
      @GeatMaximus 11 місяців тому

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

  • @СергейКаляев-ы7п
    @СергейКаляев-ы7п 10 місяців тому +43

    Сложность сортировки 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 8 місяців тому +3

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

  • @neruinfo166
    @neruinfo166 11 місяців тому +5

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

  • @nikolaifedorov685
    @nikolaifedorov685 10 місяців тому +79

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

    • @happyzombie8588
      @happyzombie8588 10 місяців тому +6

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

    • @OlegYemelyanov
      @OlegYemelyanov 9 місяців тому +6

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

    • @SaltyRain1
      @SaltyRain1 9 місяців тому +22

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

    • @nikolaifedorov685
      @nikolaifedorov685 9 місяців тому +31

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

    • @SaltyRain1
      @SaltyRain1 9 місяців тому

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

  • @DimGlin
    @DimGlin 8 місяців тому +1

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

  • @SuperEugeneone
    @SuperEugeneone 11 місяців тому +38

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

    • @vladimir_balun_programming
      @vladimir_balun_programming 11 місяців тому +2

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

    • @valeryzeryl9145
      @valeryzeryl9145 11 місяців тому

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

    • @ИванЕвдокимов-л6ь
      @ИванЕвдокимов-л6ь 11 місяців тому

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

    • @ИльяЛысенко-ц6ь
      @ИльяЛысенко-ц6ь 11 місяців тому +1

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

    • @w01fer86
      @w01fer86 11 місяців тому +1

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

  • @romanarxxy
    @romanarxxy 8 місяців тому +7

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

    • @george4619
      @george4619 7 місяців тому

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

    • @timur2887
      @timur2887 4 місяці тому

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

  • @yaroslavlymar6599
    @yaroslavlymar6599 8 місяців тому +5

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

    • @ArtemAleksashkin
      @ArtemAleksashkin Місяць тому

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

    • @Constructor11
      @Constructor11 24 дні тому

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

  • @designed6102
    @designed6102 11 місяців тому +23

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

  • @Daniil_Chu
    @Daniil_Chu 11 місяців тому +21

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

    • @картонобзоры
      @картонобзоры 11 місяців тому +9

      Открой окно

    • @constantinegeist1854
      @constantinegeist1854 10 місяців тому +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 в целом да, согласен с вами.

  • @TTT111-T
    @TTT111-T 6 місяців тому

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

  • @АртемАрте-г5х
    @АртемАрте-г5х 10 місяців тому +1

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

    • @forbidden_content
      @forbidden_content 10 місяців тому

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

  • @hsqlk
    @hsqlk Місяць тому +2

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

  • @MRtheLAGERAT
    @MRtheLAGERAT 11 місяців тому +16

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

    • @Kondratyevv
      @Kondratyevv 11 місяців тому

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

    • @MRtheLAGERAT
      @MRtheLAGERAT 11 місяців тому +1

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

    • @freestylerveevo
      @freestylerveevo 11 місяців тому

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

    • @freestylerveevo
      @freestylerveevo 11 місяців тому

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

    • @MRtheLAGERAT
      @MRtheLAGERAT 11 місяців тому

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

  • @DubinArtur
    @DubinArtur 10 місяців тому +1

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

    • @mrt24739
      @mrt24739 10 місяців тому

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

  • @ihorvodko767
    @ihorvodko767 8 місяців тому

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

  • @ArtemAleksashkin
    @ArtemAleksashkin Місяць тому

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

  • @kOzae6bI4
    @kOzae6bI4 8 місяців тому

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

  • @лерка-л2ж
    @лерка-л2ж 3 місяці тому

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

  • @nmg_prm
    @nmg_prm 11 місяців тому +1

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

  • @timur2887
    @timur2887 4 місяці тому

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

  • @mayboroda
    @mayboroda 11 місяців тому +5

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

    • @Varkatel
      @Varkatel 11 місяців тому +2

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

    • @maxnov4120
      @maxnov4120 10 місяців тому +2

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

    • @constantinegeist1854
      @constantinegeist1854 10 місяців тому +2

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

  • @Денис-ж3ф5р
    @Денис-ж3ф5р 8 місяців тому +2

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

    • @mormeoi
      @mormeoi 7 днів тому

      В том то и дело, что это "легкое" 90% приходящих решить не могут :)

  • @tsttst3179
    @tsttst3179 9 місяців тому

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

  • @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 был неверен. Но проверка верна

  • @iFATUM88
    @iFATUM88 8 місяців тому +1

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

  • @danilbanan406
    @danilbanan406 11 місяців тому +2

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

  • @Smurfetti
    @Smurfetti 11 місяців тому +5

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

    • @Kondratyevv
      @Kondratyevv 11 місяців тому +2

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

    • @w01fer86
      @w01fer86 11 місяців тому

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

    • @zazaorg3957
      @zazaorg3957 11 місяців тому

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

  • @livemy
    @livemy 10 місяців тому

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

  • @vp_arth
    @vp_arth 10 місяців тому +4

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

    • @leonidfilippov9698
      @leonidfilippov9698 8 місяців тому

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

    • @vp_arth
      @vp_arth 8 місяців тому

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

  • @RomanKoshetov
    @RomanKoshetov 5 місяців тому

    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]

  • @DenisBrilliantov
    @DenisBrilliantov 6 місяців тому +1

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

  • @get_out_it
    @get_out_it 11 місяців тому +8

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

    • @undefined4992
      @undefined4992 11 місяців тому

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

    • @warmrew9033
      @warmrew9033 10 місяців тому

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

    • @TheCharlieGordon
      @TheCharlieGordon 10 місяців тому

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

    • @undefined4992
      @undefined4992 10 місяців тому

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

    • @TheCharlieGordon
      @TheCharlieGordon 10 місяців тому

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

  • @maximal5791
    @maximal5791 10 місяців тому +2

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

  • @Barrrash
    @Barrrash 11 місяців тому +11

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

    • @heuretic
      @heuretic 11 місяців тому +1

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

    • @Barrrash
      @Barrrash 11 місяців тому

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

    • @vladikvelikiy
      @vladikvelikiy 10 місяців тому

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

    • @antoneltchaninov2246
      @antoneltchaninov2246 7 місяців тому

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

    • @Barrrash
      @Barrrash 7 місяців тому

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

  • @get_out_it
    @get_out_it 11 місяців тому +13

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

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

  • @alexlightweight
    @alexlightweight 10 місяців тому +30

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 місяців тому

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

    • @constantinegeist1854
      @constantinegeist1854 10 місяців тому +13

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 місяців тому

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

    • @constantinegeist1854
      @constantinegeist1854 10 місяців тому +6

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

    • @romanchuk_vlog
      @romanchuk_vlog 7 місяців тому

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

  • @BoQbL1k
    @BoQbL1k 7 місяців тому

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

  • @megauspexx
    @megauspexx 10 місяців тому

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

    • @warmrew9033
      @warmrew9033 10 місяців тому

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

    • @denisshkanduk6241
      @denisshkanduk6241 10 місяців тому

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

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

  • @mrt24739
    @mrt24739 10 місяців тому

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

    • @antonantonov2995
      @antonantonov2995 8 місяців тому

      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]

  • @HeczZots
    @HeczZots 8 місяців тому +1

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

  • @emotional_stuff
    @emotional_stuff 4 місяці тому

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

  • @dodibilder
    @dodibilder 5 місяців тому

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

  • @OlegToropov-uj6jh
    @OlegToropov-uj6jh 8 місяців тому

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

  • @nnnabbot
    @nnnabbot 11 місяців тому +3

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

    • @timur2887
      @timur2887 4 місяці тому

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

  • @wall-wrecker-my6ss
    @wall-wrecker-my6ss 11 місяців тому +54

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

    • @blabla-f7n
      @blabla-f7n 11 місяців тому +21

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

    • @dieff_automation
      @dieff_automation 11 місяців тому +1

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

    • @404Negative
      @404Negative 10 місяців тому +10

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

    • @EsinaViwn9
      @EsinaViwn9 10 місяців тому +1

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

    • @constantinegeist1854
      @constantinegeist1854 10 місяців тому

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

  • @ЯрикЛапаыы
    @ЯрикЛапаыы 10 місяців тому +2

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

    • @nihttoter3240
      @nihttoter3240 9 місяців тому +6

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

  • @mormeoi
    @mormeoi 5 місяців тому

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

  • @tr3mendous24
    @tr3mendous24 7 місяців тому +1

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

  • @Денис-ж3ф5р
    @Денис-ж3ф5р 8 місяців тому

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

  • @UserSo4reUsu75ry
    @UserSo4reUsu75ry 11 місяців тому +2

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

    • @victorianking9042
      @victorianking9042 11 місяців тому

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

  • @Sheri313
    @Sheri313 2 місяці тому +1

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

    • @353_YK_RF
      @353_YK_RF 2 місяці тому +1

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

  • @thevirusnvgm2518
    @thevirusnvgm2518 11 місяців тому

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

    • @thevirusnvgm2518
      @thevirusnvgm2518 11 місяців тому +2

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

    • @ВладПалаев-з4н
      @ВладПалаев-з4н 11 місяців тому

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

    • @gzhegow
      @gzhegow 11 місяців тому

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

  • @TheCharlieGordon
    @TheCharlieGordon 10 місяців тому +3

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

  • @dmit100
    @dmit100 11 місяців тому

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

  • @iptashR
    @iptashR 11 місяців тому +2

    0:43. Was machst du?

  • @get_out_it
    @get_out_it 11 місяців тому +2

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 місяців тому

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

    • @get_out_it
      @get_out_it 10 місяців тому

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 місяців тому

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

    • @denisshkanduk6241
      @denisshkanduk6241 10 місяців тому

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

  • @young_flex3077
    @young_flex3077 9 місяців тому

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

  • @ДенисЛазарев-б8ш
    @ДенисЛазарев-б8ш 9 місяців тому

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

  • @nicholasspezza9449
    @nicholasspezza9449 11 місяців тому +9

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

  • @romanfomin8109
    @romanfomin8109 11 місяців тому

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

    • @wowyomad
      @wowyomad 11 місяців тому +2

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

  • @ВадимКлимов-й1щ
    @ВадимКлимов-й1щ 9 місяців тому +3

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

  • @megauspexx
    @megauspexx 10 місяців тому

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

  • @Kelb90
    @Kelb90 11 місяців тому

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

    • @radiosh66
      @radiosh66 11 місяців тому

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

    • @Kelb90
      @Kelb90 11 місяців тому

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

    • @radiosh66
      @radiosh66 11 місяців тому +1

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

    • @pav28amur
      @pav28amur 11 місяців тому

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

  • @lifewinsful
    @lifewinsful 10 місяців тому +3

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

  • @iamo0
    @iamo0 9 місяців тому

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

  • @Miclell
    @Miclell 8 місяців тому

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

  • @muted9877
    @muted9877 11 місяців тому

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

  • @wonderful2122
    @wonderful2122 11 місяців тому +1

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

    • @sb9185
      @sb9185 11 місяців тому +3

      Не изи)

  • @IvanGalkin-f8m
    @IvanGalkin-f8m 10 місяців тому

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

    • @igorf243
      @igorf243 10 місяців тому

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

    • @IvanGalkin-f8m
      @IvanGalkin-f8m 10 місяців тому

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

    • @juhikoinb1403
      @juhikoinb1403 9 місяців тому

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

  • @Boka-and-Joka
    @Boka-and-Joka 10 місяців тому +6

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

    • @alexlightweight
      @alexlightweight 10 місяців тому +3

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

    • @timur2887
      @timur2887 4 місяці тому +1

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

  • @alexandrcorbin
    @alexandrcorbin 10 місяців тому +2

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

  • @ЕвгенийП-д8л
    @ЕвгенийП-д8л 11 місяців тому +3

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

    • @w01fer86
      @w01fer86 11 місяців тому +3

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

    • @D-gw4vj
      @D-gw4vj 10 місяців тому

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

  • @klawakrokk3989
    @klawakrokk3989 Місяць тому

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

  • @wowxd9893
    @wowxd9893 10 місяців тому +1

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

  • @comparison9436
    @comparison9436 8 місяців тому +3

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

    • @АлександрИванов-х1ю
      @АлександрИванов-х1ю 7 місяців тому +3

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

    • @grapesmusic03
      @grapesmusic03 4 місяці тому

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

    • @timur2887
      @timur2887 4 місяці тому +1

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

  • @АзаматханАрифханов
    @АзаматханАрифханов 11 місяців тому +3

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

  • @stepandemin5836
    @stepandemin5836 11 місяців тому +3

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

  • @defkill1erb
    @defkill1erb 10 місяців тому

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

    • @alekseifilippov9236
      @alekseifilippov9236 9 місяців тому

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

  • @spinacker16
    @spinacker16 9 місяців тому

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

  • @noname-bi7ve
    @noname-bi7ve 10 місяців тому +6

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

  • @brainrainz
    @brainrainz 11 місяців тому +1

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

    • @get_out_it
      @get_out_it 11 місяців тому +1

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

  • @Ryurix
    @Ryurix 5 місяців тому

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

  • @evgadamov
    @evgadamov 6 місяців тому

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

  • @НиколайНиколаевич-т6я
    @НиколайНиколаевич-т6я 9 місяців тому

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

  • @JohnCena-lv3ew
    @JohnCena-lv3ew 10 місяців тому +1

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

    • @ChannelCheesecake
      @ChannelCheesecake 10 місяців тому

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

  • @dailys7391
    @dailys7391 11 місяців тому

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

    • @dibehemoth401
      @dibehemoth401 11 місяців тому +6

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

    • @sb9185
      @sb9185 11 місяців тому +5

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

    • @dibehemoth401
      @dibehemoth401 11 місяців тому +1

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

    • @sb9185
      @sb9185 11 місяців тому

      646?@@dibehemoth401

    • @get_out_it
      @get_out_it 11 місяців тому +6

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

  • @dimama1551
    @dimama1551 9 місяців тому

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

  • @endaksi_channel
    @endaksi_channel 11 місяців тому

    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 11 місяців тому

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

    • @vp_arth
      @vp_arth 10 місяців тому

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