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

  Рет қаралды 177,835

Yandex for Developers

Yandex for Developers

5 жыл бұрын

Больше информации и примеры задач в нашей статье на Хабре: habr.com/ru/company/yandex/bl...

Пікірлер: 230
@sergeyparakhin2634
@sergeyparakhin2634 3 жыл бұрын
А потом ты приходишь на проект и пилишь бизнес - логику. Где главная задача не забыть проверить на null, а не вот эта вот дичь с алгоритмами.
@user-et7qh3wj3u
@user-et7qh3wj3u 2 жыл бұрын
На фронте двигаешь кнопочки, на бэке перекладываешь джейсончики_)
@vladimirv5782
@vladimirv5782 Жыл бұрын
да не, ты потом смотришь код чувака - олимпиадника и понимаешь - лучше бы они наняли просто с горящими глазами чувака с крепким знанием фреймворка и просто объяснили бы ему то, что он не знает (чуть научили) - он бы писал лучше - хотя бы из-за того, что не переусложнял бы и не мнил себя великим прогером - почаще доки читал или примеры из Интернета хотя бы
@dmitrypetrov8491
@dmitrypetrov8491 Жыл бұрын
@@vladimirv5782 Эти задачи проверяют минимальный уровень адекватности. Если чувак не в состоянии написать 10 строчек без гугла, то его не нужно нанимать. Олимпиадники здесь ни при чем (да и невозможно их выявить такими простыми задачами)
@djsjdjdjjd
@djsjdjdjjd 11 ай бұрын
​@@dmitrypetrov8491 многое прогеры не могут, когда над душой стоят
@koptelovav
@koptelovav Жыл бұрын
"в идеале ошибок лучше не допускать" - может тогда в идеале и тесты не писать, а просто нанимать идеальных разработчиков
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil Жыл бұрын
в идеале не допускать ошибок - значит уменьшать риски, продумывать в идеале тесты не писать - значит увеличивать риски нанимать идеальных разработчиков - но коментс
@artemnikolaev8331
@artemnikolaev8331 11 ай бұрын
😀
@user-er1st4mw7b
@user-er1st4mw7b 8 ай бұрын
В идеале лучше не грешить, тогда становишься святым и работать в яндекс уже не нужно.
@alek0585
@alek0585 Жыл бұрын
Надо на бересте писать. Зачем эти новомодные штучки в виде маркеров и досок?
@user-gk2kn3ri7z
@user-gk2kn3ri7z Жыл бұрын
"На компьютере можно просто вставить объявление переменных, на доске придется стирать, поэтому нужно продумывать заранее" - да это ж гениально!:)))
@ablaevsergey9707
@ablaevsergey9707 Жыл бұрын
Можно ж не стирать, а дописать выше справа :)
@dmitrypetrov8491
@dmitrypetrov8491 Жыл бұрын
Еще можно зазоры оставлять между строчками, на всякий случай :D
@Prof-Shor
@Prof-Shor 10 ай бұрын
Отож. Боже упаси к такому попасть на интервью
@huskylabs21
@huskylabs21 4 жыл бұрын
Видео оказались полезными при подготовке, спасибо. Попался к Алексею на одной из технических встреч, было вдвойне приятно!))
@silvernurfer344
@silvernurfer344 4 жыл бұрын
Как долго проходить интервью чтобы работать за зарплату ниже рыночной, отвечает Яндекс
@arthurfonzerelli6484
@arthurfonzerelli6484 3 жыл бұрын
тоже слышал, что у них зарплаты ниже рынка, интересно, это правда?
@alexyetto969
@alexyetto969 3 жыл бұрын
откуда инфа? Я работал стажером за 60, джуном после 3 месяцев за 115к
@arthurfonzerelli6484
@arthurfonzerelli6484 3 жыл бұрын
@@alexyetto969 от коллег слышал. Но 115к для джуна - это отлично
@watchmedie3780
@watchmedie3780 3 жыл бұрын
@@arthurfonzerelli6484 блять я пытаюсь пройти контест прямо сейчас и понимаю,что я не понимаю ничего в алгоритмах и математике ,накидайте ресурсов,если знаете,товарищи.
@user-pw2un2bg7o
@user-pw2un2bg7o 3 жыл бұрын
@@alexyetto969 в СПб и Мск это зарплата ниже среднего, большинство знакомых после стажировки получали 140-170
@bobsinclar6482
@bobsinclar6482 Жыл бұрын
Хорошая поставленная речь, без слов-паразитов. Приятно слушать
@Velmisoff
@Velmisoff 3 жыл бұрын
круто объясняет почти повседневный бул щит программиста - мне бы такого ментора
@devhazhi
@devhazhi 4 жыл бұрын
На самом деле все просто и понятно. Главное не волноваться.
@widgetii
@widgetii 5 жыл бұрын
Работать в нашей компании такая честь (c) Yandex
@MrRadiostep
@MrRadiostep 3 жыл бұрын
А деньги?
@widgetii
@widgetii 3 жыл бұрын
@@MrRadiostep а деньги будут после Яндекса
@cheesebusiness
@cheesebusiness Жыл бұрын
Для джунов, чтобы потом легче было уйти в компанию, в которой платят хорошие деньги
@user-bk3gj1he3o
@user-bk3gj1he3o 6 ай бұрын
@@cheesebusiness практика показывает, что для того, чтобы тебя пригласили в хорошую компанию не обязательно иметь Яндекс или ему подобное в резюме.
@cheesebusiness
@cheesebusiness 6 ай бұрын
@@user-bk3gj1he3o это не противоречит моему комментирую
@XorAlex
@XorAlex 4 жыл бұрын
Спасибо за полезное видео.
@aleksanderaksenov1363
@aleksanderaksenov1363 Жыл бұрын
Я бы очень хотел посмотреть как эти великие алгоритмисты сами бы написали на пвседокоде новый для них алгоритм на 20 минут,а не надрючивались бы на LeetCode☺Может наконец то начнете давать инжененрные задачи,а не задачи на навыки кодера....
@alexeym.9883
@alexeym.9883 7 ай бұрын
Ну справедливости ради тут задача была простая, и не надрючиваясь на LeetCode мне сразу же пришла в голову ровна та же идея, что и в видео)
@kosiak10851
@kosiak10851 5 ай бұрын
Нужны им алгоритмисты - пусть ищут алгоритмистов. Тебе-то что? Ясное дело лучше искать великих изобретателей, а не надрюченных заучек готового. Но мне непонятно, как твой коммент выступает в поддержку изобретательства? Ведь под инженерными задачами ты подразумеваешь явно не "антинадрюченские алгоритмы, которых нет на литкоде", например. А ровно наоборот: "нахуй алгоритмы, лучше спросите меня как я профессионально прикрутил фреймворк к фреймворку по готовым мануалам"
@MrSerg00000
@MrSerg00000 3 жыл бұрын
спасибо классная задачка !)
@TheCelaskon
@TheCelaskon 2 жыл бұрын
Большая часть задач, в том числе и в Яндекс, не требует алгоритмических навыков. Яндекс стреляет себе в ногу каждый раз когда ищет штампованные болванки.
@theboredasfook
@theboredasfook 2 жыл бұрын
Да да, ведь только яндекс так делает
@TheCelaskon
@TheCelaskon 2 жыл бұрын
@@theboredasfook Большинство копирует к несчастью, порой не понимая как можно иначе.. Большую часть времени разрабы будут писать бизнес логику и им не обязательно задумываться как устроена хеш таблица и как резруливаются коллизии в них.. в то время как рынок испытывает голод... разрабы которые собеседуют новобранцев не могут пропустить "незнаек" ибо эго жмёт, потом hr-ры как присоски.. хорошо бы иметь 2 QA на инженера, а тут по 2 hr на оного... оно и понятно, кушать хотят.. Ничего, рынок всё поставит по местам ))
@aleksandrsolution2380
@aleksandrsolution2380 2 жыл бұрын
@@TheCelaskon мой опыт в 8 лет показывает, что средний IQ, обучаемость и продуктивность человека, который знает, как устроена хеш таблица, выше, чем у тех, кто не знает. В том числе, в работе над рутинными задачами реального промышленного IT
@TheCelaskon
@TheCelaskon 2 жыл бұрын
@@aleksandrsolution2380 очень рад за Ваш опыт и IQ ;) а есть цифры? А то мой опыт в 20 лет показывает, что люди вполне справляются с поставленными задачами не всегда имея глубинных представлений. Хотя конечно, лишними эти знания не будут.
@alexanders1532
@alexanders1532 Жыл бұрын
@@aleksandrsolution2380 а есть какой-то способ качественно измерить IQ? И если да, то что именно он показывает: навык человека проходить IQ тесты или же что-то другое? Как быть с IQ каких-нибудь вымирающих аборигенов в Африке и что произойдет, если поселить тебя с ними на год без телефона и интернета? Поможет ли твой невероятно высокий уровень IQ и знание устройства хэш таблиц выжить в подобных условиях? Если ты умрешь, то будет ли из этого следовать, что твой уровень IQ ниже, чем у среднестатистического аборигена? Твой опыт в восемь (ахаха) лет показывает лишь то, что за восемь (ой, смешно) лет ЧСВ у тебя раздулось значительно сильнее, чем твои профессиональные навыки.
@jwegas
@jwegas Жыл бұрын
То есть все в яндекс пишут код сразу с первого раза, без отладки и ошибок? Написал, и сразу в прод?
@alexandervlassov2385
@alexandervlassov2385 4 жыл бұрын
Спасибо! Полезное видео. Небольшой совет бы добавил для доски/бумажки -- писать через строчку/две, чтобы можно было в образовавшиеся зазоры добавить забытую переменную или условие.
@VitaliyNET
@VitaliyNET 3 жыл бұрын
Зачем? Можно просто нажать enter на доске ))
@keegancorey7750
@keegancorey7750 2 жыл бұрын
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 2 жыл бұрын
@Keegan Corey instablaster ;)
@keegancorey7750
@keegancorey7750 2 жыл бұрын
@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 2 жыл бұрын
@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
@sjavaoradev
@sjavaoradev 4 ай бұрын
а вот в правильно написанном коде у вас же увеличивается количество вызовов мак функции ?
@victorkrasnov5576
@victorkrasnov5576 3 жыл бұрын
Вообще-то, первое, что приходит в голову: else current = 0 PS xD приехали туда же, но видео засталяет шевелировать извилинами, это лайк :)
@victorkrasnov5576
@victorkrasnov5576 2 жыл бұрын
@exru Тогда уж и if лучше не использовать, поскольку условный переход сбрасывает состояния конвейера :) Я думаю, в python ничто из этого не релеванто, ибо там под капотом дюже много всяких if-else, написанных на C. А для читабельности кода, в общем случае, else - не помеха.
@vasiloconnell281
@vasiloconnell281 Жыл бұрын
А можете рассказать, зачем разработчику попадать в Яндекс? А то не очень понятно.
@aploskov
@aploskov Жыл бұрын
Печеньки. Всё дело в хороших печеньках.
@vater122
@vater122 Жыл бұрын
Очевидно же, чтобы писать сортировку маркером на доске. Очень полезное и важное занятие.
@MrLotrus
@MrLotrus Жыл бұрын
Чтобы участвовать в разработке серьезных продуктов с большой нагрузкой.
@SkyAntins
@SkyAntins Жыл бұрын
@@MrLotrus забыл добавить "за нищие деньги". А потом после набора опыта можно перейти на хорошую зп в другую компанию и там "участвовать в разработке серьезных продуктов с большой нагрузкой"
@MrLotrus
@MrLotrus Жыл бұрын
@@SkyAntins нищие деньги это до какой суммы?
@vater122
@vater122 Жыл бұрын
Как говорится: "вам шашечки или ехать"
@good0ne
@good0ne 2 жыл бұрын
Приятная музыка на фоне!
@uvencosuper3471
@uvencosuper3471 27 күн бұрын
Я поставил на паузу и сходу написал алгоритм, который предполагает вычисление макса сразу в операторе ретурн, что является быстрее (опустим, что это питон), чем выполнение функции макс в цикле, т.к. на ретурне эта функция выполняется единожды. Но на бумаге я бы много почиркал, могу ли я приходить в яндекс устраиваться? )))
@WEST8033
@WEST8033 Жыл бұрын
А если мы не попали в условие if n > 0, не будет ли best undefined? (руководствуясь логикой js)
@artem_malashenko
@artem_malashenko Жыл бұрын
Так мы best заранее определили как 0
@serhiisakhno84
@serhiisakhno84 5 жыл бұрын
По проходу по бинарному массиву. Дублирования конечно нет, но такой вариант приводит к вызову функции max равному числу единиц в массиве. Понимаю, что для данного примера это не критично, но стоит ли это улучшение по сравнению с постоянным затратам на вызов функции? Хотя это и преждевременная оптимизация, и возможно это повлияет на производитетельность кода не критично.
@pand5461
@pand5461 5 жыл бұрын
А если в else обрабатывать - то вызовов будет столько, сколько нулей в массиве. Если есть основания полагать, что единиц много, а нулей мало (или наоборот) - тогда имеет смысл выбирать, куда ставить max().
@AlexandrSudakov
@AlexandrSudakov 4 жыл бұрын
​@@pand5461 но можно else переделать в "elif current > 0:" и тогда мы уменьшаем кол-во операций. да и if легковесней. по-крайней мере, я всегда думаю о том, чтобы самую быструю версию написать, а не такую, в которой ни в коем случае не переповторяется код. быстрота против красоты кода.
@s.k.6563
@s.k.6563 3 жыл бұрын
Сразу же возникла такая же претензия. Best нужно записывать в else, проверяя на if (count>max)
@user-lv1wj5bv4t
@user-lv1wj5bv4t 2 жыл бұрын
тогда придется еще в конец добавить и будет не очень красиво
@akiiaev
@akiiaev 2 жыл бұрын
Не знаю как на cisc процессорах, но на risk max функция транслируется в одну аппаратную инструкцию, а у вас еще и условие добавлено, которое добавляет столлы, обычно ваше решение медленнее.@@s.k.6563
@heaventud
@heaventud 3 жыл бұрын
я конечно, не в Яндекс работаю, но мне кажется, в python задача решается гораздо проще num = ''.join(nums) ones = num.split('0') print(max(len(i) for i in ones))
@gleb.yuzhakov
@gleb.yuzhakov 2 жыл бұрын
такой код будет работать в разы дольше и требовать намного больше памяти, и если nums будет очень большим, то это может привести к неприятным последствиям
@kosbarable
@kosbarable 2 жыл бұрын
к комменту выше добавлю, что претендента проверяют на алгоритмическое мышление, а не на знание либ питона.
@primawerefox4020
@primawerefox4020 2 жыл бұрын
Тем не менее это самое алгоритмически простое решение. Ни циклов, ни условных операторов :)
@Zant1an
@Zant1an 2 жыл бұрын
@@gleb.yuzhakov да сейчас вообще ср*ть хотели все на время и память. Посмотри сколько страничка гмейла в оперативке занимает и удивишься :) И как она лагает на слабых компах
@rustyhex9899
@rustyhex9899 Жыл бұрын
@@primawerefox4020 цикл таки есть. И вообще тут один синтаксический сахар, если его развернуть алгоритм получится такой себе
@SuperHadiy
@SuperHadiy Жыл бұрын
Не вижу смысла выполнять max для каждой единицы. Смысл есть только когда последовательность единиц окончилась, т.е. предыдущей элемент был 1, а текущий стал 0 или текущий 1 и мы уже дошли до конца.
@user-ms6sq7xu9o
@user-ms6sq7xu9o 3 жыл бұрын
Яндекс! У тебя большая аудитория, делай пожалуйста 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 2 жыл бұрын
там же по условию, озвученному автором, на входе бинарный вектор соответственно, он может состоять только из 0 и 1, поэтому условие n > 0 равнозначно n == 1
@user-ms6sq7xu9o
@user-ms6sq7xu9o 2 жыл бұрын
@@artyompranovich5450 Так в том и дело, у тебя есть прямое условие (==1) и есть твои домыслы (если не ноль, то ровно то, что надо). Во-первых проверка на == 1 - это прямая проверка и она этим понятнее, во-вторых в будущем бинарный вектор может начать иметь больше состояний, а при ==1 продолжит работать без изменений кода.
@Bokto1
@Bokto1 2 жыл бұрын
if not seq менее эксплисит, чем len(seq) == 0
@user-ms6sq7xu9o
@user-ms6sq7xu9o 2 жыл бұрын
Я вам больше скажу, len(seq) == 0 ещё и безопаснее, если вместо seq может прилететь не контейнер. Но у языка есть средства на такие случаи и каждому своё место.
@supercereal4667
@supercereal4667 2 жыл бұрын
У меня был одноклассник Леша Ильин, если это ты то исенме)))) Если нет то тоже хорошего денька) 1) в условии в массиве только 0 и 1, так что никаких домыслов - если не ноль, то единица. + Второй варик с if n отработает не только если n - единица, так что противоречие 2)в случае если последний элемент - единица, то сравнение не произойдет -> ответ может быть неверным 3)len() понятнее на интуитивном уровне, ну и кто то может не знать фишки питона
@user-iCuaebtAi926
@user-iCuaebtAi926 5 жыл бұрын
кто первый халат одел, тот и доктор
@alexyetto969
@alexyetto969 3 жыл бұрын
надел
@vladoosb
@vladoosb 4 жыл бұрын
Яндекс это единственная компания, где процесс собеседования наглядно демонстрирует народную поговорку - "от любви до ненависти один шаг". И нигде так не радуешься, что провалил собеседование, потому что понимаешь, что работать в компании зазнавшихся токсичных снобов ты явно не сможешь долго. )))
@alexyetto969
@alexyetto969 3 жыл бұрын
откуда информация, много с кем общался?
@darkduke83
@darkduke83 3 жыл бұрын
Ну меня радуют их задачки, 3е друзей туда ушло, сидел решал их задачки в захлеб от счаться))) подписатся бы на задачки от яндекс как на мурзилку))) По 6 задачек каждое утро, для разминки мозга перед рабочим днем, а там и кодить будет просще после мозговой зарядки 🤣🤣🤣🤣
@-VaTer
@-VaTer Жыл бұрын
Прямо с языка снял!
@melenium
@melenium Жыл бұрын
После слов бинарный вектор поняла что мне еще рано
@fedc_
@fedc_ 2 жыл бұрын
Бинарный вектор ёмаё
@ajiekcahdppeperoni7011
@ajiekcahdppeperoni7011 3 жыл бұрын
почему код громоздкий если можно переписать в 2 тернара и цикл
@ilya6049
@ilya6049 3 жыл бұрын
Мамкин тим-лид
@Smyth47466
@Smyth47466 4 жыл бұрын
Ну так как нужно правильно описывать алгоритм, я так и не понял?
@AKAAAAAAAAAAAAAA
@AKAAAAAAAAAAAAAA Жыл бұрын
Если нет цели получить спортивный разряд по стиранию доски, то оставляйте по 2-3 пустых строки между строками на случай вставки.
@channeldsr9983
@channeldsr9983 Жыл бұрын
6:50 - Недостатков там нет. После изменения, увеличилось количество вызовов max
@AuthorProxy
@AuthorProxy Жыл бұрын
нет не увеличилось, столько же
@tatianamaslova6792
@tatianamaslova6792 Жыл бұрын
Согласна. Уж лучше пусть будет копирование кода. Очень удивляет, что в Яндексе остановились на таком неэкономичном варианте
@theDesponded
@theDesponded Жыл бұрын
так с чего вдруг увеличилось? Есть основания полагать, что в векторе единиц больше, чем нулей?
@AndreiIvanov-ph8sx
@AndreiIvanov-ph8sx Ай бұрын
@@AuthorProxy В целом подход вызывать max только тогда, когда необходимо, правильный. Да, в данном случае это элементарная операция, но в общем случае эта привычка поможет оптимизировать код. Вообще в идеале было бы else: if (counter > 0) best = max(...) - тогда вызывалось бы только при переходе с 1 на 0. Но это все для тех случаев, когда вместо max какая-то более долгая операция.
@avazart614
@avazart614 4 жыл бұрын
Все же делать сравнение на каждом шаге ( момент в коде max()) так себе... Вариант с сравнением только при обнаружении 0 и в конце - лучше.
@drovoseg
@drovoseg 3 жыл бұрын
А чем он лучше? Ноль же тоже может быть на каждом шаге.
@Anatolii_V_Novikov
@Anatolii_V_Novikov 8 ай бұрын
Да, алгоритмы они такие :)
@pavelpetrashov2975
@pavelpetrashov2975 3 жыл бұрын
По поводу тогт, что проверка краевых условий вначале плохая практика, полностью не согласен. И обьяснение, что мол я могу наговнокодить из-за этого просто какое-то натянутое. Я пишу код по TDD и всегда проверяю исключительные ситуации первыми. Потом смело рефакторю, так как написаны тесты, и код становится чистым.
@alexnick183
@alexnick183 5 жыл бұрын
Зачем вы так издеваетесь над соискателями? Есть ли количественно подтверждённый показатель эффективности такого подхода?
@mapron1
@mapron1 4 жыл бұрын
Прибыль Яндекса мб? Какой еще показатель вы ожидаете? Сколько кандидатов в категории "вместе с водой выплеснули дитя"? Для такой компании как Яндекс это неизбежно, они десятками людей набирают.
@user-ed3sg5vy2y
@user-ed3sg5vy2y 4 жыл бұрын
@@mapron1 Яндекс в минусах - живет за счет инвестиций или вливаний. Возможно из-за усложненного подхода. А может из-за амбиций, если из-за амбиций - хорошо и правильно. Но ... рынок он уступает и мирится с этим.. так что вариант с усложненным подходом не стоит отметать.
@SuperMigman
@SuperMigman 4 жыл бұрын
@@user-ed3sg5vy2y в минусах? А ты смешной. Может для начала хоть финансовые отчёты публичные посмотришь.
@fedc_
@fedc_ 2 жыл бұрын
@@SuperMigman Он и зарабатывает на дешевой РАБ силе, так например Китай, Китаем стал. Мало того что Яндекс жарит всех, от водителей до аналитиков и в хвост и в гриву, так люди еще и радуются что у нас такая классная компания есть. Русский народ это просто атас
@zeuszanudav3474
@zeuszanudav3474 11 ай бұрын
Очень крутая идея по проработке тестовых и критических значений. Спасибо!
@sergzach
@sergzach 4 жыл бұрын
Только зачем программисту уметь писать код на доске? Давно уже есть средства для удаленной колаборации.
@olegpetroff6186
@olegpetroff6186 3 жыл бұрын
потому что без фломастера и доски ты не программист, так считает Яндекс! Да забыл, еще умный вид и не улыбаться, а то подумают что он какую то хуюню рассказывает!
@vechnonedovolen666
@vechnonedovolen666 3 жыл бұрын
Потому что это большая честь
@manOfPlanetEarth
@manOfPlanetEarth 2 жыл бұрын
понял?:) это большая честь.
@valeryka5308
@valeryka5308 2 жыл бұрын
Ok
@ajiekcahdppeperoni7011
@ajiekcahdppeperoni7011 3 жыл бұрын
как нет дублирования кода когда current = 0 два раза
@osmig3565
@osmig3565 3 жыл бұрын
Первое - это объявление переменной (счетчик) и присваивание ей значения нуля. Во втором случае, когда элемент массива 0, то счетчик следует обнулить, так как последовательность единиц нарушена.
@ajiekcahdppeperoni7011
@ajiekcahdppeperoni7011 3 жыл бұрын
@@osmig3565 ты гений 👏этот код можно переписать в тернар и логику переделать гораздо лучше этого говна примитивного
@dasohrdermauer39
@dasohrdermauer39 3 жыл бұрын
Задачки - это хорошо. А кто у вас ваяет это навязчивое авнище Алису и тонны саморекламы Яндекс браузера?
@user-rg5wp3ug1c
@user-rg5wp3ug1c 3 ай бұрын
Погодите, погодите...)) Зачем стирать две строчки кода с правильным алгоритмом, когда можно стереть одну строчку с названием функции и добавить объявления всех переменных вместо нее? Такой подход уже тянет на сложность 2^n. Опасно. :-D
@user-fk4ef5jz5k
@user-fk4ef5jz5k Жыл бұрын
Вы меня конечно простите, но на каждую встреченную единицу вызывать макс(), это както жирно будет. т.е. производительность не важна в принципе?
@theDesponded
@theDesponded Жыл бұрын
А есть основания полагать, что нулей будет меньше в последовательности, чтобы вызывать макс() на каждый встреченный ноль?
@antonvolkov8982
@antonvolkov8982 2 жыл бұрын
Слушайте, ну выполнять функцию max() на каждый шаг цикла на миллионе, скажем, итераций - это весьма себе такое.... Так что компактность кода компактностью, но оптимизация же должна же хоть какая-то быть?
@kirillshibalenkov4979
@kirillshibalenkov4979 Жыл бұрын
Сразу возникает вопрос, а зачем писать код на доске? Спикер сам говорит, что нужно заранее продумывать код, чтобы для добавления промежуточных строк не стирать последующие. Да и писать на доске код уже звучит абсурдно. Не проще ли выдать разработчику ноутбук и шарить экран например на доску или на другие компьютеры?
@stunislove190
@stunislove190 11 ай бұрын
Сейчас на доске уже никто код не пишет. Это ушло в прошлое. Сейчас на собеседованиях в Яндексе используют IDE в браузере без подсветки синтаксиса.
@namelessboar
@namelessboar 6 ай бұрын
​@@stunislove190то есть уже продвинулись до блокнота. Хай-тек
@user-uk7wf2xl7g
@user-uk7wf2xl7g 7 ай бұрын
Ну уж если следовать правилам то массивы на Python называются кортежами а в данном примере идет работа со списками
@protiv_bio
@protiv_bio 4 жыл бұрын
А я-то, дурак, думал, что алгоритмическая задача - это когда ты рисуешь алгоритм в виде блок-схемы/дракон-схемы/псевдоязыка и т.д. А тут вон оно как. Настоящий разработчик должен наизусть знать стандартную библиотеку и кодить на доске, а потом в голове компилировать код в машинный и доказать в соответствии со спецификациями машинного кода, что код исполняется верно и отрабатывает за такое-то количество тактов.
@AlexFeynman
@AlexFeynman Ай бұрын
Стереть одну строку - нее, стереть 2 строки- даа
@firewatermoonsun
@firewatermoonsun 2 жыл бұрын
Говорят зарплаты в Яндексе невысокие?
@yodapunishes
@yodapunishes 2 жыл бұрын
Всегда можно посмотреть на glassdoor или levels
@vrabosh
@vrabosh 3 жыл бұрын
len(max(''.join(map(str, array)).split('0'))) # вот еще необычный способ решения:)
@user-kj9zl3hl2h
@user-kj9zl3hl2h 3 жыл бұрын
Эффективность низкая
@vrabosh
@vrabosh 3 жыл бұрын
@@user-kj9zl3hl2h это да, просто для прикола показал, как в питоне можно кратко писать, иногда в спортивном прогрммировании помогает.
@HelloWorld-sy4yc
@HelloWorld-sy4yc 4 жыл бұрын
В этом году был гроб от Халявина
@vladimirtsybin6507
@vladimirtsybin6507 3 жыл бұрын
эта вообще легкая задача: 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; }
@user-xm6mv2ug6o
@user-xm6mv2ug6o 6 ай бұрын
Очевидно рекурсией будет получше. А каждый раз вызывать функцию max - ну такое себе по эффективности.
@rybiizhir
@rybiizhir Жыл бұрын
Надеюсь парень не программирует на доске, а то запарится же все время переписывать. Из личной практики - код функции можно оставить в покое после 4-го варианта, лучше уже возможно не получится.
@yahorzhylinski9347
@yahorzhylinski9347 Жыл бұрын
Т.е. называть метод foo это ок?
@harry-smith404
@harry-smith404 2 жыл бұрын
даже в отрыве от курсов яндекса, это тупо трезвое рассуждение о написании любого кода
@user-no3rr2wk2g
@user-no3rr2wk2g 5 жыл бұрын
Почему доска-то вместо среды разработки? Понятно, что людям лица приятнее скриншотов, но приятнее ли они айтишникам...
@polkovnikpolovnik
@polkovnikpolovnik 4 жыл бұрын
Писать код на доске это хороший навык, помогает в реальной жизни. Плюс это устоявшаяся традиция, показывает насколько ты ясно мыслишь
@valery5022
@valery5022 Жыл бұрын
@@polkovnikpolovnik помогает в реальной жизни? это сарказм?
@x2ES
@x2ES 2 жыл бұрын
по мне так итерация != ошибка
@user-nu8ru5uz2h
@user-nu8ru5uz2h 4 жыл бұрын
Иде и проектор не судьба?
@user-zg2gd8gl8o
@user-zg2gd8gl8o Жыл бұрын
дичь для олимпиадников и задротеров. Совершенно бесплолезный хлам.. Когда будет бизнес - задача в реальной работе, ты отполируешь и алгоритм решения и сам код и тебе не нужны будут эти наскальные 500 задач на эти векторы с массивами.
@user-eo4qh4ou8x
@user-eo4qh4ou8x Жыл бұрын
сколько воды
@michunel7022
@michunel7022 Жыл бұрын
В яндексе оказывается нужен навык написания кода на доске, надо аж сразу код продумывать перед написанием. Бред собачий.
@FessNiklas1987
@FessNiklas1987 2 жыл бұрын
Когда яндекс прекратит страдать этой хуйней? Я понимаю такую фигню спрашивать для тех кто в биг дата работает. А фронтам нахуя Ваша сложность и информатика?
@AndreySedov
@AndreySedov 5 жыл бұрын
Стойкая неприязнь к подобному. В вашей компании никак от школьного синдрома не избавятся!!! Спецом даете доску,чтобы людям жизнь усложнить,когда им придется стирать половину и начинать заново7
@AlexPopov17
@AlexPopov17 5 жыл бұрын
Кажется, это у тебя школьный синдром, раз доски боишься
@AlexPopov17
@AlexPopov17 4 жыл бұрын
@Dzmitry Lahoda в резюме ссылка на гитхаб есть. А при чём тут мой код?
@user-dx7ce3ty7d
@user-dx7ce3ty7d Жыл бұрын
Дорогой мой, "главное условие" - проверка входных данных. main condition или general condition. Без этого ваш код не рабочий изначально. PS проводить собеседование на доске в 2022-м это уже даже не мовитон. Любой реальный разработчик пользуется инструментами для разработки, а не "доской"! И собеседование человека на детсадовских алгоритмах, у которого есть опыт настоящего отраслевого программирования - смех и цирк.
@MrLotrus
@MrLotrus Жыл бұрын
Так не ходите в яндекс или в компании FAANG. Зачем приходить к ним и рассказывать что они неправильно собеседования проводят, заставляя решать алгоритмы? В вашей успешной компании может быть так, как нравится вам.
@Yifzmagarki
@Yifzmagarki Жыл бұрын
Фуууу, а почему такие супер программисты не решают задачку через тестирование.
@NarkotikAsd
@NarkotikAsd 3 жыл бұрын
ниче не понятно нет обьяснений
@teamkicker0
@teamkicker0 11 ай бұрын
Просто не ходите в яндекс. Низкие зарплаты и дроч алгосами.
@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 а мне ты зачем это пишешь?🤦‍♂️ Я же и придумал этот пример - я-то знаю как он работает.
@MrAlexPhilippov
@MrAlexPhilippov 3 жыл бұрын
Забавно, что половину из комментаторов ("что за прикол с тестами в начале - написал ответы и... значит, что всё правильно понял"; "в XXI в. есть проекторы"; "зачем писать на доске, есть же ИДЕ" и пр.) уже можно после комментариев (и уже без тестов) на работу не брать. Ну, или брать... операторами какими-нибудь по вводу, например.
@user-wm3tv6dt1p
@user-wm3tv6dt1p 3 жыл бұрын
жаль IT мир про это не знает, ну да ладно.
@MrAlexPhilippov
@MrAlexPhilippov 3 жыл бұрын
@@user-wm3tv6dt1p Про что?
@quickesful
@quickesful 5 жыл бұрын
Еще один вариант :) 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 жыл бұрын
Индусокодстайл?
@wlepnoga
@wlepnoga 4 жыл бұрын
@@avazart614 нет, нужно больше строчек. ))
@avazart614
@avazart614 4 жыл бұрын
@@wlepnoga Кучей кеп-стал-комметариев добьете
@swaggerpoison5020
@swaggerpoison5020 4 жыл бұрын
@@avazart614 индусо код это какраз когда куча циклов иф фор элс) ну по моему наблюдению синтаксический сахар индусы не особо юзают
@IlyaGradina
@IlyaGradina 3 жыл бұрын
однострочник) max(map(len, ''.join(map(str, m)).split('0')))
@vladimirtrusov1826
@vladimirtrusov1826 3 жыл бұрын
Здравствуй Леша руководитель У меня просьба на руководи нормальные цены в такси 🚕 почему убрали гарантийные выплаты их нет а возим по 50 95 итд это без гарантий не цена У меня машина арендная 1200 аренда 700 газ 200 мойка стоянка 60 моя зп за 12 часов 500 700 рублей вы че творите 140 рублей с одного конца города в другой по пробкам Физически не заработаешь больше
@ne4to777
@ne4to777 4 жыл бұрын
Ага, а в задаче этих условий нет. Додумывай сам.
@MrAlexPhilippov
@MrAlexPhilippov 3 жыл бұрын
Каких? о_О
@funduccom2181
@funduccom2181 4 жыл бұрын
В Google даже таких задач не дают на собеседование 😂 Яндекс 🤦 просто шарашка . Иди лучше навигатор почини !
@darkelf585
@darkelf585 2 жыл бұрын
а какие задачи в Гугл?
@user-hc8sv6mm8m
@user-hc8sv6mm8m 3 жыл бұрын
если волосы еще подлиннее отрастит, будет похож на девушку)
@eugenenovikov671
@eugenenovikov671 4 жыл бұрын
Ну так раздайте компьютеры кандидатам, чего вы тупите. И что это за прикол с тестами в начале - написал ответы и это типа значит, что всё правильно понял? Что за дичь.... Массив заканчивается единицами - и что??? Это какие-то особенные единицы??
@drovoseg
@drovoseg 3 жыл бұрын
Это TDD, единицы в конце как раз помогли найти баг
@ekaterinanikolaeva1504
@ekaterinanikolaeva1504 2 жыл бұрын
@@drovoseg а если не всегда понятно какие условия краевые, иногда над этим отдельно подумать надо, какой пример привести чтобы он стал краевым. И в итоге, какое решение правильное и красивое, а то закончили на длинном, которое лучше избегать?
@MrTrylobeat
@MrTrylobeat 12 күн бұрын
Это какой то отдельный вид мазохизма после которого получаем "не могу жить в стране которая воюет с соседями"
@nihttoter3240
@nihttoter3240 8 ай бұрын
Math.max(...yourArr.join().replaceAll(',', '').split('0').map(i => i.length))
NO NO NO YES! (50 MLN SUBSCRIBERS CHALLENGE!) #shorts
00:26
PANDA BOI
Рет қаралды 102 МЛН
ELE QUEBROU A TAÇA DE FUTEBOL
00:45
Matheus Kriwat
Рет қаралды 15 МЛН
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 49 МЛН
How to calculate the complexity of an algorithm by BIG O | The clearest explanation!
25:44
Front-end Science із Сергієм Пузанковим
Рет қаралды 119 М.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Об отборе на стажировку в Яндекс из первых уст
55:45
Спортивное программирование МИРЭА
Рет қаралды 47 М.
NO NO NO YES! (50 MLN SUBSCRIBERS CHALLENGE!) #shorts
00:26
PANDA BOI
Рет қаралды 102 МЛН