Задача из Собеседования в Microsoft (Бинарные Деревья)

  Рет қаралды 240,293

Саша Лукин

Саша Лукин

Күн бұрын

Пікірлер: 592
@sashalukin
@sashalukin 6 ай бұрын
Создал Telegram канал, в котором рассказываю о жизни в Лондоне, работе в Google и подготовке к собеседованиям. Подписывайтесь: t.me/saschalukin
@alexanderpoplooukhin7448
@alexanderpoplooukhin7448 Жыл бұрын
Объяснение - просто 🔥. Это тот случай, когда у автора есть реальная способность доходчиво и лаконично объяснить алгоритмы и структуры данных
@victorprohorov6201
@victorprohorov6201 Жыл бұрын
а я не особо понял. лучше было бы если бы автор показал как это работает на примере
@yaroslavandreyev4246
@yaroslavandreyev4246 Жыл бұрын
@@victorprohorov6201 а чем этот пример, был не примером?
@victorprohorov6201
@victorprohorov6201 Жыл бұрын
@@yaroslavandreyev4246 я не понял как мы переходим по вершинам.
@КонстантинКолибаба
@КонстантинКолибаба Жыл бұрын
@@victorprohorov6201 рекурсивно, начиная с корня, до всех листов. Стрелки только немного сбивают - реально граф неориентированный, раз путь может идти от левого поддерева через вершину в правое поддерево.
@sozinovss
@sozinovss Жыл бұрын
Александр, Спасибо! . У тебя талант объяснять сложные вещи, не останавливайся! Не оторваться - очень понятно и легко усваивается. Затягивает - утром вместо того, чтобы кофе налить - пошел смотреть другие ролики.
@lostislandable
@lostislandable Жыл бұрын
POV устраиваешься в среднестатистический проект: просят на собеседовании решить задачу на алгоритмы и математические знания а после офера отправляют таски по верстке 🤯
@nickoni4
@nickoni4 Жыл бұрын
Ну так радоваться надо) изи мани)))
@HyperTextTransferProtocol-l6m
@HyperTextTransferProtocol-l6m Жыл бұрын
Да, но это не плохо
@bass1387
@bass1387 Жыл бұрын
Задачи могут быть разные, зависит от потребностей бизнеса))
@DevBer
@DevBer Жыл бұрын
Лишь бы платили как за алгиритмические задачи с вышматом под капотом =))
@lostislandable
@lostislandable Жыл бұрын
@@DevBer было б так, не было б пределу счастья :)
@lufavetskaya
@lufavetskaya Жыл бұрын
После обнаружения таких замечательных пояснений, начинаешь очаровываться алгоритмами! Спасибо за вашу работу. Нереально приятно изучать тему, с таким обучающим контентом❤
@smileborsh9780
@smileborsh9780 Жыл бұрын
Даже ударение в слове «красивее» стоит правильно. 👏🏻💐
@ddflruc
@ddflruc Жыл бұрын
Я считаю, что это один из лучших каналов на ютубе по подготовке к алгоритмической секции! Спасибо огромное!!!
@larnikodis1501
@larnikodis1501 Жыл бұрын
Саня, классный парень без понтов и умный. Так держать! Еще и спортивный.
@tima-obzor
@tima-obzor Жыл бұрын
Перешёл по рекам ютюба, подготовился, чаёк заварил. Накануне изучал видео о парадоксах математики и нобелевских лауреатах, доказавших ту или иную теорему. Так сказать был готов к удивляться, и что в итоге??? Теперь я понимаю из за каих специалистов у меня винда лагает)
@Nardan78
@Nardan78 Жыл бұрын
Объяснение просто огонь. Сейчас как раз прохожу тему алгоритмов и структур данных, а ютуб подсунул видео. Несложные алгоритмы и сам нормально решаю, а вот структуры данных начали вызывать какой-то необъяснимый страх. Не думал, что весь алгоритм настолько прост. Спасибо!
@seyapanda108
@seyapanda108 Жыл бұрын
Спасибо за видео. В случае с деревьями желательно еще уметь решать dfs, bfs итерационно, а не только с помощью рекурсии. Если дерево будет выражено в список, то рекурсия уже не очень хороший вариант решения. Ну и не редко на собесах просят решить итерационно после решения с рекурсией
@vitali5615
@vitali5615 8 ай бұрын
Oh man, it's totally awesome! I checked out a ton of videos, and this one is pure magic. Everything is crystal clear! Thanks a million, bro!
@42jU29Mp
@42jU29Mp Жыл бұрын
Про Space: O(n) для первой задачи не сразу догадался. Видео хорошее.
@NickRossik
@NickRossik Жыл бұрын
В книге грохаем алгоритмы я не очень понял бинарные деревья, но зато теперь как понял! 😁 Супер объяснение, спасибо.
@СеваБакутов
@СеваБакутов Жыл бұрын
Там не было деревьев…
@ILikeActions
@ILikeActions Жыл бұрын
Отличный разбор и отличная подача! Ждем следующей задачи)
@sashalukin
@sashalukin Жыл бұрын
Спасибо!
@badcloud
@badcloud Жыл бұрын
Ого, поначалу зафтыкал, думал че за сложное объяснение, а на деле несколько строк кода емае. Мужик! Спасибо!
@ИльяСтубарев
@ИльяСтубарев Жыл бұрын
Очень круто, спасибо. Давно хотел разобраться с деревьями
@danilabagatyriya5737
@danilabagatyriya5737 11 ай бұрын
Когда сидел и не понимал, как решать, а потом сразу понял🙏🏾 Just do it!
@saimonshaplygin7867
@saimonshaplygin7867 Жыл бұрын
Привет! Саш, спасибо за разборы. У тебя очень хорошо получается. Рассказываешь сложные вещи доступным языком. Во второй задачке ошибка при инициализации поля answer. Изначально оно должно быть минус бесконечность. Так как если подать на вход функции дерево с одной вершиной, значение которой равно отрицательному числу. В версии на видео в качестве ответа мы получим 0, а не отрицательное число ps. Может быть кто-то уже писал об ошибке, но я не нашел в комментах
@alexyevdokimov642
@alexyevdokimov642 Жыл бұрын
И не только инициализация, там вообще с нулем нельзя сравнивать. Надо с минимально отрицательным. С чего автор решил, что понятие максимум это только для положительных чисел. А если там во всех узлах отрицательные value? Уже не будет правильного ответа? Ну а по сути, логика в целом верная. А рекурсия - это все равно зло :)
@Game_Pro_
@Game_Pro_ 10 ай бұрын
а кем работаешь? просто интересн окакая зарплата@@alexyevdokimov642
@НикитаКривицкий-щ5ы
@НикитаКривицкий-щ5ы Жыл бұрын
лучшие разборы задач. у меня с литкодом разговор короткий, я его решать не умею, но приходится. а эти разборы вносят хоть какую-то светлую мысль в беспросветное.
@НикитаКривицкий-щ5ы
@НикитаКривицкий-щ5ы Жыл бұрын
@@ilya9261 задачи по дп слишком разные. книги раскрывают или совсем базовые задачи, которые не попадутся на собеседовании, или книги написаны исключительно для олимпиадников. потому что как раз из олимпиад эти задачи и вышли. я решил 60(возможно не показатель) задач по дп на литкоде. с барского плеча 10 максимум повторились. но в основном это довольно уникальные задачи, которые чаще всего решаются как по учебнику(рекурсия с мемоизацией, bottom up и может оптимизированное решение) но дойти к рекуррентому соотношению, я считаю, вообще не просто. ну или все вокруг меня слишком умные и им проще решать)
@ilya9261
@ilya9261 Жыл бұрын
@@НикитаКривицкий-щ5ы а стоп, ну раз ты нарешал 60 задач по дп без подглядываний, то с чего бы ты тупил то на подобных задачах как в видео? она решается проще простого. Либо не интуитивно понимаешь свои же решения, либо хз в чем проблема. 60 не показатель, но уже что-то, не 0 (у меня сейчас меньше и я трудоустроен), продолжай в том же духе)
@НикитаКривицкий-щ5ы
@НикитаКривицкий-щ5ы Жыл бұрын
@@ilya9261 я перечитал свой коммент и понял, что забыл написать, что я так и не научился решать дп задачи)
@ilya9261
@ilya9261 Жыл бұрын
@@НикитаКривицкий-щ5ы дак ты же 60 штук решил. Как решал?
@Saby1983x
@Saby1983x Жыл бұрын
@@НикитаКривицкий-щ5ы > но дойти к рекуррентому соотношению, я считаю, вообще не просто. ну или все вокруг меня слишком умные и им проще решать) Это фигня и в жизни редко пригождается, поэтому примеры довольно вымученные. Я программирую 22 года, 10 в качестве хобби и 12 профессионально. Подобные задачи пригодились 3 раза - 2 в качестве хобби (игровой проект) и 1 на работе - тоже игровой, совершенно не типичный проект. Мой совет - требуют leetcode? пожелайте счастливого пути и ищите руководителя, который понимает, какие задачи Вы будете писать на работе. Если Вы не пишете AI для игр, то с подобными задачи будете иметь дело раз в пятилетку. Сядете, спокойно продумаете алгоритм (да, вместо 20 минут возможно целый день потратите) - но я Вас уверяю, отлаживать алгоритм и писать подходящие структуры для быстрой его работы (чтобы оно занимало вменяемое время и при этом можно было сохранить вне 1 Гигабайта) - Вы будете писать гораздо дольше.
@oleksandrl4136
@oleksandrl4136 Жыл бұрын
Дуже корисний канал. Дякую за Вашу роботу.
@АлексейСамарский-б7ц
@АлексейСамарский-б7ц Жыл бұрын
шикарно, спасибо за разбор, с первой легко было, а вторая заставила подольше посидеть)
@lyubov_zhulina
@lyubov_zhulina Жыл бұрын
Если хотите понять деревья, посмотрите это видео 👌 идеально, большое спасибо за столь подробное объяснение 🔥🔥🔥
@qumi645
@qumi645 Жыл бұрын
Шикарная подача! Всё доступно и понятно, особенно с учетом того, что я далек от программирования:)
@vasiliypupkin6311
@vasiliypupkin6311 Жыл бұрын
Дружище, спасибо тебе большое, пока твой разбор лучшее, что я видел в Ютубе для начинающих, разборы очень качественные, может сделаешь чек лист для джунов, что учить и как, спасибо!
@BellaLugoshi
@BellaLugoshi Жыл бұрын
напоминает обучение в автошколе - я купил тонюсенькую книжку с ПДД и учу правила, а остальные накупили разборы билетов и усиленно штудируют их. Но да - я потом сел и поехал на своем Заз-968М, а девочки расселись по новым Кайенам. Так что может вы и правы XD
@ОлексійСобран
@ОлексійСобран Жыл бұрын
Ха-ха. Сегодня защищал лабораторную в универе, плохо сдал, а вот сейчас захожу в ютуб, чтобы найти, под какой видосик покушать, и вижу это! 🤩🤩🤩 Леди Фортуна, интернет и ютуб, спасибо вам! 😅
@enitefall
@enitefall Жыл бұрын
даже я понял после такого понятного объяснения! Супер!
@golodnenkiy
@golodnenkiy 8 ай бұрын
Классные задачи, спасибо автору. P. s. Не описать ту радость, когда сначала пытаешься решить задачу, а потом смотришь ролик, где твоё решение совпадает с решением автора. p.p.s Только сделать Answer и проверять на max в helper-e, я не догодался, а просто запихивал возможные пути в лист, а потом из него макс брал.
@UnrealSPh
@UnrealSPh Жыл бұрын
Спасибо за видео. Единственное, хотелось бы уточнить во второй задаче. Наверное в требования входило условие, что результат должен быть положительным. В противном случае мы не покрыл кейс когда все ноды содержат отрицательные значения. Наибольший среди отрицательных тоже можно найти
@Jimoshi1
@Jimoshi1 Жыл бұрын
Я конечно может чего не понимаю, но разве отрицательные значения не меньше положительных ПО УМОЛЧАНИЮ. Если все вершины отр. то максимальное будет самое меньшее отрицательное.
@the__Wizard
@the__Wizard Жыл бұрын
@@Jimoshi1 в этом то и прикол, что такое решение не рассмотрено
@ValkRover
@ValkRover Жыл бұрын
Послушал с удовольствием. :) Удачи!
@Максим-у6у2ф
@Максим-у6у2ф Жыл бұрын
Продолжай, брат ) У меня ничего не получается на литкоде )) Хотя принцип обхода знаю, но сложно уложить стэк в голове ))
@КириллЧе-я5ы
@КириллЧе-я5ы Жыл бұрын
Стек на самом деле самая простая структура после массива… можно представить себе тарелку с блинами - ты ж с низу блин не вытащишь и вниз не положишь🥴
@Максим-у6у2ф
@Максим-у6у2ф Жыл бұрын
@@КириллЧе-я5ы да, так-то все понятно )) просто когда данные в стеке и тебе надо о них помнить это другое нежели тарелки представить )) это тарелки с данными ))
@Алексей-х5ж9п
@Алексей-х5ж9п Жыл бұрын
Как раз вчера в университете начали проходить эти деревья)
@2difficult2do
@2difficult2do Жыл бұрын
Хорошая подача и подробное объяснение. Буду заглядывать 😊
@Boobnovslava
@Boobnovslava Жыл бұрын
Спасибо за разбор, деревья моя ахилесова пята
@P0dCasts.io6o
@P0dCasts.io6o Жыл бұрын
Спасибо. Часть задач на бинарные деревья на лилкоде сделал, а часть отложил. Хотя для макс.пути понимал, что нужна рекурсия.
@Gribozhuy
@Gribozhuy Жыл бұрын
Вторая задача - все же answer = Integer.MIN_VALUE; Так как в случае с деревом состоящим всего из одного отрицательного желемента - ответ будет 0, а должен быть - само это отрицательное число.
@slavakonashkov
@slavakonashkov Жыл бұрын
Правильное замечание, но этого не достаточно. В коде, там где max, тоже нужно логику поменять.
@Gribozhuy
@Gribozhuy Жыл бұрын
@@slavakonashkov нет, в остальном все правильно.
@tsv83
@tsv83 Жыл бұрын
Просто решение у автора некорректное. Либо задача поставлена криво. Автор декларирует "дальше не пойдём" но по факту это работает только если отрицательный узел один и сравнивается с мнимым узлом, чьё значение 0. Если у 5 будет не один ребёнок -2, а ещё один, скажем -5 - решение будет несоответствовать задаче.
@МихаилПершин-х3и
@МихаилПершин-х3и Жыл бұрын
@@tsv83 работать будет и с вашим примером, поскольку с нулём сравнивается и helper(node.left) и helper(node.right), который, в свою очередь содержит максимальную сумму дальнейшего пути, то есть, в момент сравнивания уже учитывается, есть ли там что-то дальше, как то с "-3", у которой ребёнок "5"
@tsv83
@tsv83 Жыл бұрын
@@МихаилПершин-х3и нет, не будет
@georgiirozhnev
@georgiirozhnev Жыл бұрын
Блестящий разбор! Ждём продолжения
@GrigoriySokolik
@GrigoriySokolik Жыл бұрын
Спасибо за интересный ролик. Удивительно, что решение с рекурсией "проходит".
@ChannelYoJo
@ChannelYoJo Жыл бұрын
Динамическое программирование на деревьях! Крутизна!
@reHgoc
@reHgoc Жыл бұрын
спасибо за разбор. Помню как на собеседовании на Unity dev решал задачу через алгоритм Дэйкстры (вглубь и вширь), а оказывается есть более простой способ.
@AnderPython-tw3kp
@AnderPython-tw3kp Жыл бұрын
Интересная задача. Объяснено довольно доходчиво! Спасибо
@dreambreaker226
@dreambreaker226 Жыл бұрын
Да . столько раз ты это объяснял в элементарном введении в К.М. а они всё равно не понимают и спорят. Пасибо за ролик
@ОлегКарташев-т4л
@ОлегКарташев-т4л Жыл бұрын
Очень понравился формат. Сразу оформил подписку. Делай больше таких разборов, и добавляй их в отдельный плейлист на канале =)
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Жыл бұрын
Я смотрел твои видео чуть больше года назад, получил оффер с релокацией в европу) Теперь смотрю твои видео перед собеседованием в яндекс, но в этот раз решил подписаться)
@Gr-wv9rb
@Gr-wv9rb Жыл бұрын
В Европе не сложилось?
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Жыл бұрын
@@Gr-wv9rb сложилось, просто яндекс предлагает больше денег, при этом ехать не далеко
@melheor4909
@melheor4909 Жыл бұрын
Я после его видосов получил офферы на альфа центавру, а второй на Ксандар. Вот думаю куда лететь
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Жыл бұрын
@@melheor4909 я если что не писал, что я только после его видосов получил оффер, я в процессе подготовки натыкался на его видео, и объяснения мне понравились, даже е смотря на то, что тогда я собесился на позицию мидла в ts, а теперь на позицию синьора в go)
@melheor4909
@melheor4909 Жыл бұрын
@@eugenefedoryachenko8793 да я понял))
@cinemaSage_1
@cinemaSage_1 Жыл бұрын
Great. Thank you for the explanation. Now trees seems not so terrible...
@HarryKastuchsky
@HarryKastuchsky Жыл бұрын
Каждый раз, когда собираюсь менять компанию, готовлюсь к таким задачам как в первый раз, затем на несколько лет забываю, и далее по кругу. Может быть лет 20 назад эти ОСНОВЫ ИЗ ЧЕГО ВСЕ СТРОИТСЯ и нужны были кому-то, сейчас для большиства разработки это вообще мимо. Впервые я изучил это все для собеседования, наверное, после 2х лет работы программистом, и никакого всевидящего ока в мир разработки мне не открылось, прошел собес и забыл, как всегда. С тем пор я поменял 4 компании и 3 страны, и заметил что зачастую на собесах попадаются консерваторы, которые считают, раз им это интересно, и раз они это заботанили, все вокруг должны это знать, и не важно что для проекта это нафиг не нужно, как будто это какие-то невероятные знания, смешно) Знание архитектурного дизайна намного важнее как по мне, потому что ты приходишь в компанию, и твой онбординг сокращается в разы, потому что ты уже скорее всего понимаешь как работает система. А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. Первая задача еще адекватная, но вторая это по-моему уже перебор, я бы наверное и решать ее не стал, потому что мне это тупо не интересно)
@MrOldschoolrocknroll
@MrOldschoolrocknroll Жыл бұрын
Если занимаешься простейшим формашлёпством или CRUDошлёпством, где нет ни хайлоада ни интересных задач, то да, это не пригодится. Но как только захочешь отойти от чужих либ и написать своё (более подходящее и масштабируемое решение), то упрёшься в узкость своих знаний, да даже тупо не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме.
@HarryKastuchsky
@HarryKastuchsky Жыл бұрын
@@MrOldschoolrocknroll оо подъехали спецы нефармашлепы! 1) Я написал "А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. ", с чего ты взял что я "даже тупо не знаю как работает структура данных" и призываю вообще на них забить? 2) Я написал это в контексте собеседований, что зачастую их спрашивают когда они на проекте вообще не нужны. Если ты курнул и решил "написать своё (более подходящее и масштабируемое решение)", то флаг тебе в руки, никто не скажет тебе что структуры и алгоритмы для них не нужны. 3) И если ты "не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме", то у меня для тебя плохие новости.
@MrOldschoolrocknroll
@MrOldschoolrocknroll Жыл бұрын
​@@HarryKastuchsky Как же у тебя бомбануло то господи. Я же не конкретно про тебя писал а об индустрии в целом. Но раз ты воспринял всё на свой счёт, то у тебя с этим похоже какие-то проблемы))
@alexjuly7097
@alexjuly7097 3 ай бұрын
может тут и не в самой задаче дело? эти корпорации, они что-то про нас знают )) есть же реальные кейсы тестов на вакансии (не айти), где тебя не возьмут, если слишком хорошо выполнить )
@warface_cheaters_caught
@warface_cheaters_caught Жыл бұрын
Когда ты сказал, что нужно "найти путь", а потом продолжил говорить именно про сумму ветки, меня это смутило. Изначально из твоих слов верно было подумать, что требуется найти путь, то есть последовательность нод, список, так скажем, состоящих в ветке с наибольшей суммой. Как говорится, без внятного тз результат будет "хз" :)
@sovahc
@sovahc Жыл бұрын
Путь - это список нод (ну или список направлений). Так что задача не решена, автор собеседование не прошел :)
@hopelesssuprem1867
@hopelesssuprem1867 Жыл бұрын
Спасибо за классные видео. Продолжай выпускать задачки по faang
@FenBender01
@FenBender01 Жыл бұрын
Отличный разбор. Буду давать эту задачу на собеседованиях :)
@ЗахарТерех
@ЗахарТерех Жыл бұрын
Лучший! Приятно смотреть) Продолжай записывать видео и не забрасывай)
@mtigames188
@mtigames188 Жыл бұрын
Круто! Спс! С первого раза непонятно, пересмотрю на досуге еще несколько раз)
@tsaykostya
@tsaykostya Жыл бұрын
Классный канал, автор приятный парень и никакого высокомерия
@meerable
@meerable Жыл бұрын
Слово лист прозвучало, но без определения) Ну и казалось бы очевидный факт «почему дерево», ведь графически мы рисуем скорее густые корни?) Ну просто наши деревья растут вниз)
@imishka
@imishka Жыл бұрын
Есть у меня смутное предположение что если все значения в дереве будут отрицательными, то maxpathsum выдаст 0, а не мах отрицательный ответ, для этого наверное answer должен быть равен по умолчанию значению самой верхней вершины.
@gheoblink8862
@gheoblink8862 Жыл бұрын
Нет, по условию, мы имеем право взять 0 вершин, так что наш минимум - 0
@NoName-hi8bv
@NoName-hi8bv Жыл бұрын
Тож так думаю. Что если стоит отрицательное значение, а ниже много положительных
@Богдан-з5з7п
@Богдан-з5з7п Жыл бұрын
0 означает, что мы не берем левого\правого ребенка. Но после этого ответ для нашей вершины становится max(left, right) + val. Так что ошибки нет, и ответ может быть отрицательным, если положительных вершин вовсе нет
@imishka
@imishka Жыл бұрын
​@@Богдан-з5з7пэто возвращает функция helper, параллельно она записывает в переменную класса answer (максимум среди answer=0 и тем что вернул helper на данном шаге) А далее цель maxpathsum просто вывести эту переменную, соответственно если все отрицательно то answer так и останется 0. Выше написали что это вроде как правильно если ничего не брать, но в таких случаях наверное лучше уточнять данный кейс.
@michaeldeoz
@michaeldeoz Жыл бұрын
@@gheoblink8862 разве условие задачи не найти максимальный путь? Если два значения отрицательны не значит что одно из них не может быть максимальным?
@kseniiaefremova4696
@kseniiaefremova4696 8 ай бұрын
Чудесная подача теории! И код на джаве действительно понятен, хоть я и по питону больше! У меня вопрос по первой задаче: почему при вычислении space comlexity худший вариан - это дерево, которое идет только на лево или только на право?
@sergiigordiienko2494
@sergiigordiienko2494 Жыл бұрын
Приятно смотреть и слушать. Очень понятное и детальное объяснение. Большое спасибо!
@dimasw99
@dimasw99 6 ай бұрын
От души братишка, под пиво вечерком посмотреть самое оно!
@РустамНуриев-ю9т
@РустамНуриев-ю9т Жыл бұрын
Разбор задачи хорошо подан. Классный контент. Буду ждать еще разборы алгоритмов
@Fjcjfjdjdjcjvhvjc
@Fjcjfjdjdjcjvhvjc Жыл бұрын
Во второй задаче можно использовать центроидную декомпозицию дерева, мне кажется это идейно проще
@Первоисточник-с7м
@Первоисточник-с7м Жыл бұрын
Я с похмелья...чуть с ума не сошел вникая в это...
@VanillaCorpse
@VanillaCorpse 3 ай бұрын
хоспади как комфортно и понятно, подписалась)
@go8tt
@go8tt Жыл бұрын
ты классный парень, спасибо за такие ролики С:
@AkramAzizmurodov
@AkramAzizmurodov Жыл бұрын
Спасибо тебе, Саша. На твоем канале очень полезный контент. Хотел бы узнать, ты работаешь как бэкенд Java-разработчик?
@sashalukin
@sashalukin Жыл бұрын
Рад стараться! Всегда работал как Java backend, но сейчас работаю над операционкой Android, делаю фичи для новых версий. Тоже Java/C++.
@AkramAzizmurodov
@AkramAzizmurodov Жыл бұрын
@@sashalukin Я работаю как Android-разработчик (Java/Kotlin) и хочу изучать Golang для бэкенда. Но я не уверен, является ли это хорошим выбором. Что бы ты посоветовал? Я хочу работать в крупных компаниях и люблю решать алгоритмические задачи.
@sashalukin
@sashalukin Жыл бұрын
Конкретный язык программирования не имеет значения на собесах в американские айти компании. Надо уметь решать литкод (любой язык программирования на твой выбор) + System Design, если идешь на middle и выше (3+ года опыта работы). Поэтому я бы сфокусировался на этом. Ну и самое главное - начать как можно раньше и как можно чаще проходить собесы. Конкретно сейчас с этим проблема, но из тех что я знаю - booking и uber продолжают нанимать. Напиши 10-20 рекрутерам каждой компании в Linkedin что хочешь устроиться работать к ним, и попробуй получить инвайты на собесы.
@RockyTheDog756
@RockyTheDog756 Жыл бұрын
Одна из лучших подач материала!
@MVOralov
@MVOralov Жыл бұрын
В T-SQL такие штуки, как практические алгоритмы решения прикладных задач прохождения по Parent-Child иерархиям - реализуется при помощи рекурсивных CTE. Используется, например, для обработки и поддержания товарных справочников в ритейле. Ну а сама суть так же ложится в основу b-tree индексов, которые стараются на уровне их ядра поддерживать баланс «веса» значений детей
@loam
@loam 5 ай бұрын
Я как-то раз был на собеседовании Майкрософт) Тётенька такая вредная попалась. Села прямо передо мной и уставилась в мой лист что я пишу. Я тогда мало умел справляться с такими ситуациями, от напряжения все забыл 😂 Просто попрощался и ушел 😂 А когда только вышел из здания, решение мне в голову пришло 😂
@saveekglushchenko6903
@saveekglushchenko6903 Жыл бұрын
Думаю, что Вы хороший человек. Спасибо за видео
@niyazkhannanov5790
@niyazkhannanov5790 6 ай бұрын
Спасибо! посмотрел несколько роликов - очень доходчиво
@goodvin8554
@goodvin8554 Жыл бұрын
Спасибо за разбор. Хотелось бы почаще.
@denvir2254
@denvir2254 Жыл бұрын
Ооооочень подробно объясняешь)) Прям для младших классов как будто бы
@dimmispencer
@dimmispencer Жыл бұрын
Это просто. Кажется, мне надо было идти в программисты
@natsurukasumi3370
@natsurukasumi3370 Жыл бұрын
Гарний опис та рішення! Тільки я не зрозуміла останню задачу і тепер є думки на ніч 😅 Дякую за розбір, дуже класно
@sashalukin
@sashalukin Жыл бұрын
Радий що сподобалось!
@ИльяСултанов-у6з
@ИльяСултанов-у6з Жыл бұрын
Алгоритмы и структуры данных - это очень интересно. Жаль, что в работе не применяется:))
@alexpishvanov736
@alexpishvanov736 Жыл бұрын
Расскажите это любому разработчику библиотек для любой беспилотки ;)
@ИльяСултанов-у6з
@ИльяСултанов-у6з Жыл бұрын
@@alexpishvanov736 такие вещи разрабатывают хорошо если 1000 человек в мире. Но знать должны все:)))
@Lammax2012
@Lammax2012 Жыл бұрын
Отличное объяснение! Just keep going! )
@iqfunru
@iqfunru 7 ай бұрын
7:17 Пустого дерева не бывает по определению: дерево это граф, а граф имеет хотя бы одну вершину.
@РусланПолянский-х7б
@РусланПолянский-х7б Жыл бұрын
Спасибо за понятное объяснение.
@Sh.Vladislav
@Sh.Vladislav Жыл бұрын
Круто! Прям все по полочкам, реально класс! Спасибо👍🙏
@windus08
@windus08 Жыл бұрын
Хорошо объясняешь, я джаваскриптизер на собесе при задаче на рекурсию не будут ли меня душить за хип оверфлоу?
@mikeofs1304
@mikeofs1304 Жыл бұрын
Тады используй стек и цикл, они завсегда заменяют рекурсию. Там ты явно сможешь время выполнения и память контролировать. Кода конечно больше будет
@TheYozka
@TheYozka Жыл бұрын
Хорошая подача материала
@airestonia
@airestonia Жыл бұрын
Очень хорошее видео! Огромное спасибо автору. Обрадовался когда увидел, что код на Java. Эх, нам бы вас в нашу команду 😊
@clenbuterol4989
@clenbuterol4989 Жыл бұрын
Какую команду вашу
@AlexZvukov
@AlexZvukov Жыл бұрын
Отлично, спасибо. PS: качество подтянул 👍
@sashalukin
@sashalukin Жыл бұрын
Спасибо, учусь :)
@zebrasbtl
@zebrasbtl Жыл бұрын
Просто супер, все просто и понятно!
@xlv4553
@xlv4553 Жыл бұрын
Топ, спасибо большое за такое объяснение, жду новых задач!
@umni_kot
@umni_kot Жыл бұрын
чувак, не пропадай на год) Было бы интересно послушать про задачи из реальной работы в гугле. Не в точности задачи показывать понятное дело, а на похожих примерах рассказать.
@sashalukin
@sashalukin Жыл бұрын
Кстати, неплохая идея для видоса. Я еще работаю в андройде на open source, поэтому может даже на реальных примерах смогу показать
@umni_kot
@umni_kot Жыл бұрын
@@sashalukin круто!) Ждем
@leomysky
@leomysky Жыл бұрын
Спасибо за видео Не очень понял идею с второй задачей, но суть уловил
@overskam2699
@overskam2699 Жыл бұрын
побольше бы таких видео
@arjentix
@arjentix Жыл бұрын
Объяснение понравилось, но я бы предпочел видеть функцию helper более чистой (в смысле функционального программирования)
@solarscorcher1566
@solarscorcher1566 Жыл бұрын
Скинь код сюда в коммент, как это по-твоему должно быть красиво.
@martis-dev
@martis-dev Жыл бұрын
Спасибо, просто и понятно. Только я не понял одно, почему во второй задаче мы не идем ниже по дереву если у ноды оба отрицательных ребенка? А если за одним из них стоит +40? Или это имелось в виду уже результат суммы всех детей ниже?
@egorrichmining1069
@egorrichmining1069 Жыл бұрын
результат суммы предварительно считали всем (макс из нижележащих)
@Артем-п6ф9э
@Артем-п6ф9э Жыл бұрын
Спасибо за видео, очень информативно. Единственное, что не понял, это при вызове метода helper (вторая задача) то, что возвращает функция никуда не кладется. Helper же возвращает int. Как я подумал, функция является не void, просто потому, что у нас используется рекурсия и нужно что то возвращать, а ответ, который мы возвращаем после метода никуда не записывается, просто потому что он уже записан в answer'е. Может я и ошибаюсь)) А так, еще раз большое спасибо, я как раз только вчера начал разбираться с деревьями, а тут такое замечательное видео, где все подробно и понятно рассказано))
@ilias3624
@ilias3624 Жыл бұрын
Возвращаемое значение используется в функции Math.max()
@polinakir2991
@polinakir2991 Жыл бұрын
Супер! Красавчик!
@oOJIEWAOo
@oOJIEWAOo Жыл бұрын
Ура! Ты вернулся! Спасибо тебе за разбор
@_alexanderd
@_alexanderd Жыл бұрын
Спасибо за разбор задачи!
@acthanger7420
@acthanger7420 Жыл бұрын
Классный урок, очень доходчиво, пасибо))
@Poli.Pavlovich
@Poli.Pavlovich 26 күн бұрын
Супер объяснение!
@petraveryanov2572
@petraveryanov2572 Жыл бұрын
Во 2й задаче просто используем два значения - макс. путь в под-дереве и макс. путь в под.дереве, который начинается в корне. Ну и та же рекурсия. То же самое, но мне как-то проще.
@erwerwer2761
@erwerwer2761 Жыл бұрын
По первой задаче, я бы не стал делать рекурсивную функцию для этой задачи, т.к. на большом дереве можно нарваться на ограничение стека вызовов, тут лучше использовать цикл while.
@deutschuntergrad
@deutschuntergrad Жыл бұрын
В Microsoft как обычно девайсы предполагают чисто теоретическими и рассуждают примерно так: если пользователю для процесса не будет хватать оперативной памяти, то память несложно нарастить. Позвоните в службу поддержки Microoft, и мы проконсультируем вас по данному вопросу.
@yaroslavandreyev4246
@yaroslavandreyev4246 Жыл бұрын
Очень хорошо объясняете👍
@alexjuly7097
@alexjuly7097 3 ай бұрын
17:22 это верно только для дерева без нод, если у нас есть хотя бы одна нода (-10) мы не можем её отбросить.
@Mexanikkmm
@Mexanikkmm Жыл бұрын
Спасибо, довольно понятно и очень полезно.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Real Man relocate to Remote Controlled Car 👨🏻➡️🚙🕹️ #builderc
00:24
They Chose Kindness Over Abuse in Their Team #shorts
00:20
I migliori trucchetti di Fabiosa
Рет қаралды 12 МЛН
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 81 МЛН
Грабим Дома на Собеседовании в Google
11:30
Саша Лукин
Рет қаралды 40 М.
Реальное алгоритмическое собеседование в Яндекс!
36:41
Поступашки - ШАД, Стажировки и Магистратура
Рет қаралды 25 М.
Как бы я учил программирование сейчас?
7:17
Саша Лукин
Рет қаралды 360 М.
Я Прошел Собеседование в Google… Как?
9:51
Саша Лукин
Рет қаралды 559 М.