Как решать алгоритмические секции: помощь разработчикам, собеседующимся в Яндекс. Часть 1

Поділитися
Вставка
  • Опубліковано 21 вер 2024

КОМЕНТАРІ • 236

  • @sergeyparakhin2634
    @sergeyparakhin2634 3 роки тому +323

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

    • @АлексейЛужников-ъ5е
      @АлексейЛужников-ъ5е 2 роки тому +83

      На фронте двигаешь кнопочки, на бэке перекладываешь джейсончики_)

    • @vladimirv5782
      @vladimirv5782 Рік тому +49

      да не, ты потом смотришь код чувака - олимпиадника и понимаешь - лучше бы они наняли просто с горящими глазами чувака с крепким знанием фреймворка и просто объяснили бы ему то, что он не знает (чуть научили) - он бы писал лучше - хотя бы из-за того, что не переусложнял бы и не мнил себя великим прогером - почаще доки читал или примеры из Интернета хотя бы

    • @dmitrypetrov8491
      @dmitrypetrov8491 Рік тому +7

      @@vladimirv5782 Эти задачи проверяют минимальный уровень адекватности. Если чувак не в состоянии написать 10 строчек без гугла, то его не нужно нанимать. Олимпиадники здесь ни при чем (да и невозможно их выявить такими простыми задачами)

    • @djsjdjdjjd
      @djsjdjdjjd Рік тому +27

      ​@@dmitrypetrov8491 многое прогеры не могут, когда над душой стоят

    • @alexanderandryukov2187
      @alexanderandryukov2187 Місяць тому +1

      ​@@djsjdjdjjdЛадно если просто стоят. Из Яндекса чуваки постоянно прерывают тебя и с мысли сбивают. Я последних двух на хер послал. Яндекс очевидно не мое

  • @koptelovav
    @koptelovav 2 роки тому +230

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

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil Рік тому +4

      в идеале не допускать ошибок - значит уменьшать риски, продумывать
      в идеале тесты не писать - значит увеличивать риски
      нанимать идеальных разработчиков - но коментс

    • @artemnikolaev8331
      @artemnikolaev8331 Рік тому

      😀

    • @НиколайБурмин-м9ч
      @НиколайБурмин-м9ч Рік тому +6

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

  • @alek0585
    @alek0585 2 роки тому +49

    Надо на бересте писать. Зачем эти новомодные штучки в виде маркеров и досок?

  • @ИльяСултанов-у6з
    @ИльяСултанов-у6з Рік тому +45

    "На компьютере можно просто вставить объявление переменных, на доске придется стирать, поэтому нужно продумывать заранее" - да это ж гениально!:)))

    • @ablaevsergey9707
      @ablaevsergey9707 Рік тому

      Можно ж не стирать, а дописать выше справа :)

    • @dmitrypetrov8491
      @dmitrypetrov8491 Рік тому +2

      Еще можно зазоры оставлять между строчками, на всякий случай :D

    • @Prof-Shor
      @Prof-Shor Рік тому +3

      Отож. Боже упаси к такому попасть на интервью

  • @huskylabs21
    @huskylabs21 5 років тому +51

    Видео оказались полезными при подготовке, спасибо. Попался к Алексею на одной из технических встреч, было вдвойне приятно!))

  • @silvernurfer344
    @silvernurfer344 4 роки тому +118

    Как долго проходить интервью чтобы работать за зарплату ниже рыночной, отвечает Яндекс

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 4 роки тому +12

      тоже слышал, что у них зарплаты ниже рынка, интересно, это правда?

    • @alexyetto969
      @alexyetto969 4 роки тому +1

      откуда инфа? Я работал стажером за 60, джуном после 3 месяцев за 115к

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 4 роки тому +5

      @@alexyetto969 от коллег слышал. Но 115к для джуна - это отлично

    • @watchmedie3780
      @watchmedie3780 4 роки тому +4

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

    • @НиколайКононов-г6с
      @НиколайКононов-г6с 4 роки тому

      @@alexyetto969 в СПб и Мск это зарплата ниже среднего, большинство знакомых после стажировки получали 140-170

  • @widgetii
    @widgetii 5 років тому +159

    Работать в нашей компании такая честь (c) Yandex

    • @MrRadiostep
      @MrRadiostep 3 роки тому +7

      А деньги?

    • @widgetii
      @widgetii 3 роки тому +71

      @@MrRadiostep а деньги будут после Яндекса

    • @cheesebusiness
      @cheesebusiness Рік тому +6

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

    • @АлексейКанаев-р8х
      @АлексейКанаев-р8х 10 місяців тому +3

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

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

      @@АлексейКанаев-р8х это не противоречит моему комментирую

  • @Velmisoff
    @Velmisoff 3 роки тому +9

    круто объясняет почти повседневный бул щит программиста - мне бы такого ментора

  • @bobsinclar6482
    @bobsinclar6482 Рік тому +9

    Хорошая поставленная речь, без слов-паразитов. Приятно слушать

  • @aleksanderaksenov1363
    @aleksanderaksenov1363 Рік тому +34

    Я бы очень хотел посмотреть как эти великие алгоритмисты сами бы написали на пвседокоде новый для них алгоритм на 20 минут,а не надрючивались бы на LeetCode☺Может наконец то начнете давать инжененрные задачи,а не задачи на навыки кодера....

    • @alexeym.9883
      @alexeym.9883 11 місяців тому +5

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

    • @kosiak10851
      @kosiak10851 9 місяців тому +1

      Нужны им алгоритмисты - пусть ищут алгоритмистов. Тебе-то что? Ясное дело лучше искать великих изобретателей, а не надрюченных заучек готового. Но мне непонятно, как твой коммент выступает в поддержку изобретательства? Ведь под инженерными задачами ты подразумеваешь явно не "антинадрюченские алгоритмы, которых нет на литкоде", например. А ровно наоборот: "нахуй алгоритмы, лучше спросите меня как я профессионально прикрутил фреймворк к фреймворку по готовым мануалам"

  • @alexandervlassov2385
    @alexandervlassov2385 4 роки тому +41

    Спасибо! Полезное видео.
    Небольшой совет бы добавил для доски/бумажки -- писать через строчку/две, чтобы можно было в образовавшиеся зазоры добавить забытую переменную или условие.

    • @VitaliyNET
      @VitaliyNET 3 роки тому +6

      Зачем? Можно просто нажать enter на доске ))

    • @keegancorey7750
      @keegancorey7750 3 роки тому

      You all prolly dont care but does any of you know a trick to get back into an instagram account??
      I stupidly forgot my account password. I would appreciate any assistance you can give me!

    • @ericklevi9735
      @ericklevi9735 3 роки тому

      @Keegan Corey instablaster ;)

    • @keegancorey7750
      @keegancorey7750 3 роки тому

      @Erick Levi i really appreciate your reply. I found the site on google and Im in the hacking process atm.
      Takes quite some time so I will reply here later when my account password hopefully is recovered.

    • @keegancorey7750
      @keegancorey7750 3 роки тому

      @Erick Levi it worked and I finally got access to my account again. I'm so happy:D
      Thank you so much you saved my account :D

  • @vladoosb
    @vladoosb 4 роки тому +92

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

    • @alexyetto969
      @alexyetto969 4 роки тому +2

      откуда информация, много с кем общался?

    • @darkduke83
      @darkduke83 3 роки тому +13

      Ну меня радуют их задачки, 3е друзей туда ушло, сидел решал их задачки в захлеб от счаться))) подписатся бы на задачки от яндекс как на мурзилку))) По 6 задачек каждое утро, для разминки мозга перед рабочим днем, а там и кодить будет просще после мозговой зарядки 🤣🤣🤣🤣

    • @-VaTer
      @-VaTer Рік тому +3

      Прямо с языка снял!

  • @TheCelaskon
    @TheCelaskon 2 роки тому +93

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

    • @theboredasfook
      @theboredasfook 2 роки тому +1

      Да да, ведь только яндекс так делает

    • @TheCelaskon
      @TheCelaskon 2 роки тому +21

      @@theboredasfook Большинство копирует к несчастью, порой не понимая как можно иначе..
      Большую часть времени разрабы будут писать бизнес логику и им не обязательно задумываться как устроена хеш таблица и как резруливаются коллизии в них.. в то время как рынок испытывает голод... разрабы которые собеседуют новобранцев не могут пропустить "незнаек" ибо эго жмёт, потом hr-ры как присоски.. хорошо бы иметь 2 QA на инженера, а тут по 2 hr на оного... оно и понятно, кушать хотят..
      Ничего, рынок всё поставит по местам ))

    • @aleksandrsolution2380
      @aleksandrsolution2380 2 роки тому +11

      @@TheCelaskon мой опыт в 8 лет показывает, что средний IQ, обучаемость и продуктивность человека, который знает, как устроена хеш таблица, выше, чем у тех, кто не знает. В том числе, в работе над рутинными задачами реального промышленного IT

    • @TheCelaskon
      @TheCelaskon 2 роки тому +32

      @@aleksandrsolution2380 очень рад за Ваш опыт и IQ ;) а есть цифры? А то мой опыт в 20 лет показывает, что люди вполне справляются с поставленными задачами не всегда имея глубинных представлений. Хотя конечно, лишними эти знания не будут.

    • @alexanders1532
      @alexanders1532 2 роки тому +10

      @@aleksandrsolution2380 а есть какой-то способ качественно измерить IQ? И если да, то что именно он показывает: навык человека проходить IQ тесты или же что-то другое? Как быть с IQ каких-нибудь вымирающих аборигенов в Африке и что произойдет, если поселить тебя с ними на год без телефона и интернета? Поможет ли твой невероятно высокий уровень IQ и знание устройства хэш таблиц выжить в подобных условиях? Если ты умрешь, то будет ли из этого следовать, что твой уровень IQ ниже, чем у среднестатистического аборигена? Твой опыт в восемь (ахаха) лет показывает лишь то, что за восемь (ой, смешно) лет ЧСВ у тебя раздулось значительно сильнее, чем твои профессиональные навыки.

  • @vater122
    @vater122 Рік тому +7

    Как говорится: "вам шашечки или ехать"

  • @victorkrasnov5576
    @victorkrasnov5576 3 роки тому +6

    Вообще-то, первое, что приходит в голову:
    else
    current = 0
    PS xD приехали туда же, но видео засталяет шевелировать извилинами, это лайк :)

    • @victorkrasnov5576
      @victorkrasnov5576 3 роки тому +1

      @exru Тогда уж и if лучше не использовать, поскольку условный переход сбрасывает состояния конвейера :) Я думаю, в python ничто из этого не релеванто, ибо там под капотом дюже много всяких if-else, написанных на C. А для читабельности кода, в общем случае, else - не помеха.

  • @vasiloconnell281
    @vasiloconnell281 2 роки тому +27

    А можете рассказать, зачем разработчику попадать в Яндекс? А то не очень понятно.

    • @aploskov
      @aploskov 2 роки тому +10

      Печеньки. Всё дело в хороших печеньках.

    • @vater122
      @vater122 Рік тому +17

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

    • @MrLotrus
      @MrLotrus Рік тому +2

      Чтобы участвовать в разработке серьезных продуктов с большой нагрузкой.

    • @SkyAntins
      @SkyAntins Рік тому +4

      @@MrLotrus забыл добавить "за нищие деньги". А потом после набора опыта можно перейти на хорошую зп в другую компанию и там "участвовать в разработке серьезных продуктов с большой нагрузкой"

    • @MrLotrus
      @MrLotrus Рік тому

      @@SkyAntins нищие деньги это до какой суммы?

  • @devhazhi
    @devhazhi 5 років тому +8

    На самом деле все просто и понятно. Главное не волноваться.

  • @SuperHadiy
    @SuperHadiy Рік тому +3

    Не вижу смысла выполнять max для каждой единицы. Смысл есть только когда последовательность единиц окончилась, т.е. предыдущей элемент был 1, а текущий стал 0 или текущий 1 и мы уже дошли до конца.

  • @jwegas
    @jwegas Рік тому +3

    То есть все в яндекс пишут код сразу с первого раза, без отладки и ошибок? Написал, и сразу в прод?

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

    Решал вместе с ним. Собрал ВСЕ ошибки (((

  • @alexnick183
    @alexnick183 5 років тому +47

    Зачем вы так издеваетесь над соискателями? Есть ли количественно подтверждённый показатель эффективности такого подхода?

    • @mapron1
      @mapron1 5 років тому +5

      Прибыль Яндекса мб? Какой еще показатель вы ожидаете? Сколько кандидатов в категории "вместе с водой выплеснули дитя"? Для такой компании как Яндекс это неизбежно, они десятками людей набирают.

    • @user-ed3sg5vy2y
      @user-ed3sg5vy2y 5 років тому +4

      @@mapron1 Яндекс в минусах - живет за счет инвестиций или вливаний. Возможно из-за усложненного подхода. А может из-за амбиций, если из-за амбиций - хорошо и правильно. Но ... рынок он уступает и мирится с этим.. так что вариант с усложненным подходом не стоит отметать.

    • @SuperMigman
      @SuperMigman 5 років тому +9

      @@user-ed3sg5vy2y в минусах? А ты смешной. Может для начала хоть финансовые отчёты публичные посмотришь.

    • @fedc_
      @fedc_ 2 роки тому +4

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

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

    1. Начни с понимания условий. Лучший способ: написать тесткейсы и предполагаемые ответы.
    2. Не старайся обработать корнеры сразу - переусложнишь код.
    3. Что можно поправить: повторы в коде, корнеры при решении, необработанные кейсы из написанных при разборе задачи.

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

    а вот в правильно написанном коде у вас же увеличивается количество вызовов мак функции ?

  • @melenium
    @melenium Рік тому +3

    После слов бинарный вектор поняла что мне еще рано

  • @serhiisakhno84
    @serhiisakhno84 5 років тому +32

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

    • @pand5461
      @pand5461 5 років тому +13

      А если в else обрабатывать - то вызовов будет столько, сколько нулей в массиве. Если есть основания полагать, что единиц много, а нулей мало (или наоборот) - тогда имеет смысл выбирать, куда ставить max().

    • @AlexandrSudakov
      @AlexandrSudakov 4 роки тому +5

      ​@@pand5461 но можно else переделать в "elif current > 0:" и тогда мы уменьшаем кол-во операций. да и if легковесней. по-крайней мере, я всегда думаю о том, чтобы самую быструю версию написать, а не такую, в которой ни в коем случае не переповторяется код. быстрота против красоты кода.

    • @s.k.6563
      @s.k.6563 3 роки тому +1

      Сразу же возникла такая же претензия. Best нужно записывать в else, проверяя на if (count>max)

    • @БорисИванов-я9м
      @БорисИванов-я9м 3 роки тому

      тогда придется еще в конец добавить и будет не очень красиво

    • @akiiaev
      @akiiaev 2 роки тому +3

      Не знаю как на cisc процессорах, но на risk max функция транслируется в одну аппаратную инструкцию, а у вас еще и условие добавлено, которое добавляет столлы, обычно ваше решение медленнее.@@s.k.6563

  • @ВикторияУлбутова
    @ВикторияУлбутова 7 місяців тому +1

    Погодите, погодите...)) Зачем стирать две строчки кода с правильным алгоритмом, когда можно стереть одну строчку с названием функции и добавить объявления всех переменных вместо нее? Такой подход уже тянет на сложность 2^n. Опасно. :-D

  • @Anonymous00754
    @Anonymous00754 3 роки тому +2

    спасибо классная задачка !)

  • @protiv_bio
    @protiv_bio 4 роки тому +41

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

  • @eleias.singer
    @eleias.singer 3 роки тому +17

    Мамкин тим-лид

  • @XorAlex
    @XorAlex 4 роки тому +1

    Спасибо за полезное видео.

  • @channeldsr9983
    @channeldsr9983 2 роки тому +6

    6:50 - Недостатков там нет. После изменения, увеличилось количество вызовов max

    • @AuthorProxy
      @AuthorProxy 2 роки тому

      нет не увеличилось, столько же

    • @tatianamaslova6792
      @tatianamaslova6792 Рік тому +2

      Согласна. Уж лучше пусть будет копирование кода. Очень удивляет, что в Яндексе остановились на таком неэкономичном варианте

    • @theDesponded
      @theDesponded Рік тому

      так с чего вдруг увеличилось? Есть основания полагать, что в векторе единиц больше, чем нулей?

    • @AndreiIvanov-ph8sx
      @AndreiIvanov-ph8sx 5 місяців тому

      @@AuthorProxy В целом подход вызывать max только тогда, когда необходимо, правильный. Да, в данном случае это элементарная операция, но в общем случае эта привычка поможет оптимизировать код. Вообще в идеале было бы else: if (counter > 0) best = max(...) - тогда вызывалось бы только при переходе с 1 на 0. Но это все для тех случаев, когда вместо max какая-то более долгая операция.

  • @heaventud
    @heaventud 3 роки тому +17

    я конечно, не в Яндекс работаю, но мне кажется, в python задача решается гораздо проще
    num = ''.join(nums)
    ones = num.split('0')
    print(max(len(i) for i in ones))

    • @gleb.yuzhakov
      @gleb.yuzhakov 3 роки тому +6

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

    • @kosbarable
      @kosbarable 3 роки тому +8

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

    • @primawerefox4020
      @primawerefox4020 2 роки тому +1

      Тем не менее это самое алгоритмически простое решение. Ни циклов, ни условных операторов :)

    • @Zant1an
      @Zant1an 2 роки тому +3

      @@gleb.yuzhakov да сейчас вообще ср*ть хотели все на время и память. Посмотри сколько страничка гмейла в оперативке занимает и удивишься :) И как она лагает на слабых компах

    • @rustyhex9899
      @rustyhex9899 2 роки тому +2

      @@primawerefox4020 цикл таки есть. И вообще тут один синтаксический сахар, если его развернуть алгоритм получится такой себе

  • @user-v191y0bYdl
    @user-v191y0bYdl 5 років тому +47

    кто первый халат одел, тот и доктор

    • @alexyetto969
      @alexyetto969 4 роки тому +34

      надел

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

      ​@@alexyetto969халат одели - тебя надели

  • @АлексейИльин-ш9б
    @АлексейИльин-ш9б 3 роки тому +30

    Яндекс! У тебя большая аудитория, делай пожалуйста code review даже таких примеров, не учи людей плохому:
    - по условию задачи надо найти подряд идущие 1, поэтому условие должно быть не if n > 0, а if n == 1 или if n
    - сравнивать best и current надо только при изменении последовательности, а не на каждый элемент 1 (или 0, версии разные на доске были)
    - пишешь на Python -> пиши на Python, какой вдруг if len(seq) == 0?? надо же if not seq, pylint вам в помощь.

    • @artyompranovich5450
      @artyompranovich5450 3 роки тому

      там же по условию, озвученному автором, на входе бинарный вектор
      соответственно, он может состоять только из 0 и 1, поэтому условие n > 0 равнозначно n == 1

    • @АлексейИльин-ш9б
      @АлексейИльин-ш9б 3 роки тому +1

      @@artyompranovich5450 Так в том и дело, у тебя есть прямое условие (==1) и есть твои домыслы (если не ноль, то ровно то, что надо). Во-первых проверка на == 1 - это прямая проверка и она этим понятнее, во-вторых в будущем бинарный вектор может начать иметь больше состояний, а при ==1 продолжит работать без изменений кода.

    • @Bokto1
      @Bokto1 3 роки тому +2

      if not seq менее эксплисит, чем len(seq) == 0

    • @АлексейИльин-ш9б
      @АлексейИльин-ш9б 3 роки тому +2

      Я вам больше скажу, len(seq) == 0 ещё и безопаснее, если вместо seq может прилететь не контейнер. Но у языка есть средства на такие случаи и каждому своё место.

    • @supercereal4667
      @supercereal4667 3 роки тому

      У меня был одноклассник Леша Ильин, если это ты то исенме)))) Если нет то тоже хорошего денька)
      1) в условии в массиве только 0 и 1, так что никаких домыслов - если не ноль, то единица. + Второй варик с if n отработает не только если n - единица, так что противоречие
      2)в случае если последний элемент - единица, то сравнение не произойдет -> ответ может быть неверным
      3)len() понятнее на интуитивном уровне, ну и кто то может не знать фишки питона

  • @fedc_
    @fedc_ 2 роки тому +6

    Бинарный вектор ёмаё

  • @dasohrdermauer39
    @dasohrdermauer39 3 роки тому +12

    Задачки - это хорошо. А кто у вас ваяет это навязчивое авнище Алису и тонны саморекламы Яндекс браузера?

  • @good0ne
    @good0ne 2 роки тому

    Приятная музыка на фоне!

  • @avazart614
    @avazart614 4 роки тому +20

    Все же делать сравнение на каждом шаге ( момент в коде max()) так себе...
    Вариант с сравнением только при обнаружении 0 и в конце - лучше.

    • @drovoseg
      @drovoseg 4 роки тому +3

      А чем он лучше? Ноль же тоже может быть на каждом шаге.

  • @sergzach
    @sergzach 4 роки тому +16

    Только зачем программисту уметь писать код на доске? Давно уже есть средства для удаленной колаборации.

    • @olegpetroff6186
      @olegpetroff6186 4 роки тому +8

      потому что без фломастера и доски ты не программист, так считает Яндекс! Да забыл, еще умный вид и не улыбаться, а то подумают что он какую то хуюню рассказывает!

    • @vechnonedovolen666
      @vechnonedovolen666 3 роки тому +14

      Потому что это большая честь

    • @manOfPlanetEarth
      @manOfPlanetEarth 2 роки тому

      понял?:) это большая честь.

  • @antonvolkov8982
    @antonvolkov8982 2 роки тому +2

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

  • @Anatolii_V_Novikov
    @Anatolii_V_Novikov Рік тому

    Да, алгоритмы они такие :)

  • @pavelpetrashov2975
    @pavelpetrashov2975 4 роки тому +8

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

  • @Сергей-ш3ы8ф
    @Сергей-ш3ы8ф Рік тому +3

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

  • @kirillshibalenkov4979
    @kirillshibalenkov4979 Рік тому

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

    • @stunislove190
      @stunislove190 Рік тому

      Сейчас на доске уже никто код не пишет. Это ушло в прошлое. Сейчас на собеседованиях в Яндексе используют IDE в браузере без подсветки синтаксиса.

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

      ​@@stunislove190то есть уже продвинулись до блокнота. Хай-тек

  • @zeuszanudav3474
    @zeuszanudav3474 Рік тому

    Очень крутая идея по проработке тестовых и критических значений.
    Спасибо!

  • @УвасяЗадорнов
    @УвасяЗадорнов 10 місяців тому

    Ну уж если следовать правилам то массивы на Python называются кортежами а в данном примере идет работа со списками

  • @FessNiklas1987
    @FessNiklas1987 2 роки тому +8

    Когда яндекс прекратит страдать этой хуйней? Я понимаю такую фигню спрашивать для тех кто в биг дата работает. А фронтам нахуя Ваша сложность и информатика?

  • @WEST8033
    @WEST8033 Рік тому

    А если мы не попали в условие if n > 0, не будет ли best undefined? (руководствуясь логикой js)

    • @artem_malashenko
      @artem_malashenko Рік тому

      Так мы best заранее определили как 0

  • @Smyth47466
    @Smyth47466 4 роки тому +2

    Ну так как нужно правильно описывать алгоритм, я так и не понял?

  • @AKAAAAAAAAAAAAAA
    @AKAAAAAAAAAAAAAA Рік тому

    Если нет цели получить спортивный разряд по стиранию доски, то оставляйте по 2-3 пустых строки между строками на случай вставки.

  • @ЗилогЗилогович
    @ЗилогЗилогович 2 роки тому

    Вы меня конечно простите, но на каждую встреченную единицу вызывать макс(), это както жирно будет. т.е. производительность не важна в принципе?

    • @theDesponded
      @theDesponded Рік тому

      А есть основания полагать, что нулей будет меньше в последовательности, чтобы вызывать макс() на каждый встреченный ноль?

  • @rybiizhir
    @rybiizhir 2 роки тому +1

    Надеюсь парень не программирует на доске, а то запарится же все время переписывать.
    Из личной практики - код функции можно оставить в покое после 4-го варианта, лучше уже возможно не получится.

  • @АлександрБелянский-ч7э

    Очевидно рекурсией будет получше. А каждый раз вызывать функцию max - ну такое себе по эффективности.

  • @ajiekcahdppeperoni7011
    @ajiekcahdppeperoni7011 3 роки тому

    почему код громоздкий если можно переписать в 2 тернара и цикл

  • @yahorzhylinski9347
    @yahorzhylinski9347 2 роки тому +5

    Т.е. называть метод foo это ок?

  • @vrabosh
    @vrabosh 3 роки тому +8

    len(max(''.join(map(str, array)).split('0'))) # вот еще необычный способ решения:)

    • @user-kj9zl3hl2h
      @user-kj9zl3hl2h 3 роки тому

      Эффективность низкая

    • @vrabosh
      @vrabosh 3 роки тому +1

      @@user-kj9zl3hl2h это да, просто для прикола показал, как в питоне можно кратко писать, иногда в спортивном прогрммировании помогает.

  • @harry-smith404
    @harry-smith404 2 роки тому +1

    даже в отрыве от курсов яндекса, это тупо трезвое рассуждение о написании любого кода

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

    Стереть одну строку - нее, стереть 2 строки- даа

  • @vladimirtsybin6507
    @vladimirtsybin6507 4 роки тому +2

    эта вообще легкая задача:
    public static int Foo(int[] nums) {
    int count = 0, prev = 0;
    for (int i = 0; nums.Length > i; i++) {
    if (nums[i] > 0)
    {
    count++;
    prev = prev < count ? count : prev;
    }
    else {
    count = 0;
    }
    }
    return prev;
    }

  • @AndreySedov
    @AndreySedov 5 років тому +44

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

    • @AlexPopov17
      @AlexPopov17 5 років тому +15

      Кажется, это у тебя школьный синдром, раз доски боишься

    • @AlexPopov17
      @AlexPopov17 5 років тому +1

      @Dzmitry Lahoda в резюме ссылка на гитхаб есть. А при чём тут мой код?

  • @Прикольноепроектноепрограммиро

    Почему доска-то вместо среды разработки?
    Понятно, что людям лица приятнее скриншотов, но приятнее ли они айтишникам...

    • @polkovnikpolovnik
      @polkovnikpolovnik 4 роки тому +2

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

    • @valery5022
      @valery5022 Рік тому +1

      @@polkovnikpolovnik помогает в реальной жизни? это сарказм?

  • @michunel7022
    @michunel7022 Рік тому +1

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

  • @valeryka5308
    @valeryka5308 2 роки тому

    Ok

  • @ajiekcahdppeperoni7011
    @ajiekcahdppeperoni7011 3 роки тому

    как нет дублирования кода когда current = 0 два раза

    • @osmig3565
      @osmig3565 3 роки тому

      Первое - это объявление переменной (счетчик) и присваивание ей значения нуля. Во втором случае, когда элемент массива 0, то счетчик следует обнулить, так как последовательность единиц нарушена.

    • @ajiekcahdppeperoni7011
      @ajiekcahdppeperoni7011 3 роки тому

      @@osmig3565 ты гений 👏этот код можно переписать в тернар и логику переделать гораздо лучше этого говна примитивного

  • @firewatermoonsun
    @firewatermoonsun 2 роки тому +1

    Говорят зарплаты в Яндексе невысокие?

    • @yodapunishes
      @yodapunishes 2 роки тому

      Всегда можно посмотреть на glassdoor или levels

  • @HelloWorld-sy4yc
    @HelloWorld-sy4yc 4 роки тому +1

    В этом году был гроб от Халявина

  • @Александр-й3ч5л

    Дорогой мой, "главное условие" - проверка входных данных. main condition или general condition. Без этого ваш код не рабочий изначально. PS проводить собеседование на доске в 2022-м это уже даже не мовитон. Любой реальный разработчик пользуется инструментами для разработки, а не "доской"! И собеседование человека на детсадовских алгоритмах, у которого есть опыт настоящего отраслевого программирования - смех и цирк.

    • @MrLotrus
      @MrLotrus Рік тому

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

  • @teamkicker0
    @teamkicker0 Рік тому +1

    Просто не ходите в яндекс. Низкие зарплаты и дроч алгосами.

  • @vladimirtrusov1826
    @vladimirtrusov1826 3 роки тому +5

    Здравствуй Леша руководитель У меня просьба на руководи нормальные цены в такси 🚕 почему убрали гарантийные выплаты их нет а возим по 50 95 итд это без гарантий не цена У меня машина арендная 1200 аренда 700 газ 200 мойка стоянка 60 моя зп за 12 часов 500 700 рублей вы че творите 140 рублей с одного конца города в другой по пробкам Физически не заработаешь больше

  • @АлександрКуликов-ж8к
    @АлександрКуликов-ж8к 5 років тому +7

    Иде и проектор не судьба?

  • @ИванИванов-й6ф1х
    @ИванИванов-й6ф1х Рік тому +1

    сколько воды

  • @Yifzmagarki
    @Yifzmagarki Рік тому

    Фуууу, а почему такие супер программисты не решают задачку через тестирование.

  • @x2ES
    @x2ES 2 роки тому

    по мне так итерация != ошибка

  • @funduccom2181
    @funduccom2181 4 роки тому +11

    В Google даже таких задач не дают на собеседование 😂 Яндекс 🤦 просто шарашка . Иди лучше навигатор почини !

    • @darkelf585
      @darkelf585 2 роки тому +1

      а какие задачи в Гугл?

  • @MrAlexPhilippov
    @MrAlexPhilippov 4 роки тому +2

    Забавно, что половину из комментаторов ("что за прикол с тестами в начале - написал ответы и... значит, что всё правильно понял"; "в XXI в. есть проекторы"; "зачем писать на доске, есть же ИДЕ" и пр.) уже можно после комментариев (и уже без тестов) на работу не брать. Ну, или брать... операторами какими-нибудь по вводу, например.

  • @quickesful
    @quickesful 5 років тому +2

    Еще один вариант :)
    m = [0,0,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,1]
    t = "".join(map(m, lambda x: str(x)))
    print(max(map(lambda x: len(x), t.split('0'))))

    • @avazart614
      @avazart614 4 роки тому +14

      Индусокодстайл?

    • @wlepnoga
      @wlepnoga 4 роки тому

      @@avazart614 нет, нужно больше строчек. ))

    • @avazart614
      @avazart614 4 роки тому +1

      @@wlepnoga Кучей кеп-стал-комметариев добьете

    • @swaggerpoison5020
      @swaggerpoison5020 4 роки тому +1

      @@avazart614 индусо код это какраз когда куча циклов иф фор элс) ну по моему наблюдению
      синтаксический сахар индусы не особо юзают

    • @IlyaGradina
      @IlyaGradina 4 роки тому +2

      однострочник)
      max(map(len, ''.join(map(str, m)).split('0')))

  • @s.k.6563
    @s.k.6563 3 роки тому

    public static int check(int[] arr) {
    int count = 0;
    int max = 0;
    for (int e : arr) {
    if (e == 1) {
    count++;
    } else {
    if (count > max) { max = count; }
    count = 0;
    }
    }
    return max; }
    }

    • @manOfPlanetEarth
      @manOfPlanetEarth 2 роки тому

      аллё, уважаемый:))
      а что выдаст твой код, если:
      1. массив заканчивается последовательностью единиц и она будет самой длинной последовательностью единиц?
      2. массив состоит из только (например) пяти единиц?
      а?:))

    • @valery5022
      @valery5022 Рік тому

      @@manOfPlanetEarth очевидно
      1. не максимум
      2. 0

    • @manOfPlanetEarth
      @manOfPlanetEarth Рік тому

      @@valery5022
      а мне ты зачем это пишешь?🤦‍♂️ Я же и придумал этот пример - я-то знаю как он работает.

  • @ne4to777
    @ne4to777 4 роки тому +6

    Ага, а в задаче этих условий нет. Додумывай сам.

  • @NarkotikAsd
    @NarkotikAsd 3 роки тому

    ниче не понятно нет обьяснений

  • @eugenenovikov671
    @eugenenovikov671 4 роки тому +5

    Ну так раздайте компьютеры кандидатам, чего вы тупите. И что это за прикол с тестами в начале - написал ответы и это типа значит, что всё правильно понял? Что за дичь.... Массив заканчивается единицами - и что??? Это какие-то особенные единицы??

    • @drovoseg
      @drovoseg 4 роки тому +2

      Это TDD, единицы в конце как раз помогли найти баг

    • @ekaterinanikolaeva1504
      @ekaterinanikolaeva1504 3 роки тому

      @@drovoseg а если не всегда понятно какие условия краевые, иногда над этим отдельно подумать надо, какой пример привести чтобы он стал краевым. И в итоге, какое решение правильное и красивое, а то закончили на длинном, которое лучше избегать?

  • @ВасяСухов-ч5н
    @ВасяСухов-ч5н 3 роки тому +1

    если волосы еще подлиннее отрастит, будет похож на девушку)

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

    Это какой то отдельный вид мазохизма после которого получаем "не могу жить в стране которая воюет с соседями"

  • @МухаметджинТимур
    @МухаметджинТимур 19 днів тому

    А по факту ты перекладываешь json-ы

  • @МухаметджинТимур
    @МухаметджинТимур 19 днів тому

    2024 году для меня яндекс это клоака

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

    Я поставил на паузу и сходу написал алгоритм, который предполагает вычисление макса сразу в операторе ретурн, что является быстрее (опустим, что это питон), чем выполнение функции макс в цикле, т.к. на ретурне эта функция выполняется единожды. Но на бумаге я бы много почиркал, могу ли я приходить в яндекс устраиваться? )))

  • @nihttoter3240
    @nihttoter3240 Рік тому

    Math.max(...yourArr.join().replaceAll(',', '').split('0').map(i => i.length))