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

  Переглядів 225,521

Саша Лукин

Саша Лукин

День тому

Разбираем 2 задачи из собеседования в Microsoft в Пражский офис. Я постарался объяснить их так, чтобы было понятно даже тем, кто вообще про бинарные деревья в первый раз слышит.
Задачи на литкоде:
1 - leetcode.com/problems/path-sum/
2 - leetcode.com/problems/binary-...
Дисклеймер:
Изначальные задачи, которые спросили у подписчика, были другими. Я разобрал похожие, но которое уже есть на литкоде. Таким образом я и новые задачи не палю, и разбираем мы актуальные темы, на которые дают задачи на собеседованиях в топовые зарубежные IT компании.
00:00 О задачах
02:08 Немного теории
03:10 Первая задача
07:35 Разбираем на примере
09:50 Код первой задачи
11:38 Вторая задача
16:08 Разбираем на примере
18:26 Код второй задачи

КОМЕНТАРІ: 574
@sashalukin
@sashalukin 4 дні тому
Создал Telegram канал, в котором рассказываю о жизни в Лондоне, работе в Google и подготовке к собеседованиям. Подписывайтесь: t.me/saschalukin
@lostislandable
@lostislandable Рік тому
POV устраиваешься в среднестатистический проект: просят на собеседовании решить задачу на алгоритмы и математические знания а после офера отправляют таски по верстке 🤯
@nickoni4
@nickoni4 Рік тому
Ну так радоваться надо) изи мани)))
@user-rl8fy6xe1t
@user-rl8fy6xe1t 11 місяців тому
Да, но это не плохо
@bass1387
@bass1387 11 місяців тому
Задачи могут быть разные, зависит от потребностей бизнеса))
@DevBer
@DevBer 11 місяців тому
Лишь бы платили как за алгиритмические задачи с вышматом под капотом =))
@lostislandable
@lostislandable 11 місяців тому
@@DevBer было б так, не было б пределу счастья :)
@alexanderpoplooukhin7448
@alexanderpoplooukhin7448 Рік тому
Объяснение - просто 🔥. Это тот случай, когда у автора есть реальная способность доходчиво и лаконично объяснить алгоритмы и структуры данных
@victorprohorov6201
@victorprohorov6201 Рік тому
а я не особо понял. лучше было бы если бы автор показал как это работает на примере
@yaroslavandreyev4246
@yaroslavandreyev4246 Рік тому
@@victorprohorov6201 а чем этот пример, был не примером?
@victorprohorov6201
@victorprohorov6201 Рік тому
@@yaroslavandreyev4246 я не понял как мы переходим по вершинам.
@user-hg8mk8tb2r
@user-hg8mk8tb2r Рік тому
@@victorprohorov6201 рекурсивно, начиная с корня, до всех листов. Стрелки только немного сбивают - реально граф неориентированный, раз путь может идти от левого поддерева через вершину в правое поддерево.
@sozinovss
@sozinovss Рік тому
Александр, Спасибо! . У тебя талант объяснять сложные вещи, не останавливайся! Не оторваться - очень понятно и легко усваивается. Затягивает - утром вместо того, чтобы кофе налить - пошел смотреть другие ролики.
@lufavetskaya
@lufavetskaya Рік тому
После обнаружения таких замечательных пояснений, начинаешь очаровываться алгоритмами! Спасибо за вашу работу. Нереально приятно изучать тему, с таким обучающим контентом❤
@user-to1sn4ft5e
@user-to1sn4ft5e Рік тому
Очень круто, спасибо. Давно хотел разобраться с деревьями
@Nardan78
@Nardan78 Рік тому
Объяснение просто огонь. Сейчас как раз прохожу тему алгоритмов и структур данных, а ютуб подсунул видео. Несложные алгоритмы и сам нормально решаю, а вот структуры данных начали вызывать какой-то необъяснимый страх. Не думал, что весь алгоритм настолько прост. Спасибо!
@qumi645
@qumi645 Рік тому
Шикарная подача! Всё доступно и понятно, особенно с учетом того, что я далек от программирования:)
@user-hg6tn5xn2k
@user-hg6tn5xn2k Рік тому
шикарно, спасибо за разбор, с первой легко было, а вторая заставила подольше посидеть)
@user-zf9gl8fr5g
@user-zf9gl8fr5g Рік тому
Разбор задачи хорошо подан. Классный контент. Буду ждать еще разборы алгоритмов
@sergiigordiienko2494
@sergiigordiienko2494 11 місяців тому
Приятно смотреть и слушать. Очень понятное и детальное объяснение. Большое спасибо!
@goodvin8554
@goodvin8554 Рік тому
Спасибо за разбор. Хотелось бы почаще.
@infomail8550
@infomail8550 Рік тому
Очень классно все объяснил. Супер. Спасибо
@ILikeActions
@ILikeActions Рік тому
Отличный разбор и отличная подача! Ждем следующей задачи)
@sashalukin
@sashalukin Рік тому
Спасибо!
@2difficult2do
@2difficult2do Рік тому
Хорошая подача и подробное объяснение. Буду заглядывать 😊
@georgiirozhnev
@georgiirozhnev Рік тому
Блестящий разбор! Ждём продолжения
@vasiliypupkin6311
@vasiliypupkin6311 Рік тому
Дружище, спасибо тебе большое, пока твой разбор лучшее, что я видел в Ютубе для начинающих, разборы очень качественные, может сделаешь чек лист для джунов, что учить и как, спасибо!
@user-gs7ro3tl9t
@user-gs7ro3tl9t 6 місяців тому
Я считаю, что это один из лучших каналов на ютубе по подготовке к алгоритмической секции! Спасибо огромное!!!
@RockyTheDog756
@RockyTheDog756 Рік тому
Одна из лучших подач материала!
@xlv4553
@xlv4553 Рік тому
Топ, спасибо большое за такое объяснение, жду новых задач!
@user-cy5rq6ig6s
@user-cy5rq6ig6s 11 місяців тому
Лучший! Приятно смотреть) Продолжай записывать видео и не забрасывай)
@_alexanderd
@_alexanderd Рік тому
Спасибо за разбор задачи!
@lyubov_zhulina
@lyubov_zhulina 9 місяців тому
Если хотите понять деревья, посмотрите это видео 👌 идеально, большое спасибо за столь подробное объяснение 🔥🔥🔥
@AnderPython-tw3kp
@AnderPython-tw3kp Рік тому
Интересная задача. Объяснено довольно доходчиво! Спасибо
@Dim4581
@Dim4581 Рік тому
Спасибо!) отличный разбор. Интересно увидеть задачу о эффективном наполнении рюкзака
@enitefall
@enitefall Рік тому
даже я понял после такого понятного объяснения! Супер!
@vitali5615
@vitali5615 Місяць тому
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!
@Mexanikkmm
@Mexanikkmm Рік тому
Спасибо, довольно понятно и очень полезно.
@larnikodis1501
@larnikodis1501 Рік тому
Саня, классный парень без понтов и умный. Так держать! Еще и спортивный.
@oOJIEWAOo
@oOJIEWAOo Рік тому
Ура! Ты вернулся! Спасибо тебе за разбор
@user-kp5og5so7f
@user-kp5og5so7f Рік тому
Спасибо за понятное объяснение.
@FenBender01
@FenBender01 Рік тому
Отличный разбор. Буду давать эту задачу на собеседованиях :)
@zebrasbtl
@zebrasbtl Рік тому
Просто супер, все просто и понятно!
@user-pv5jf8vp5b
@user-pv5jf8vp5b 8 місяців тому
Круто! Прям все по полочкам, реально класс! Спасибо👍🙏
@ValkRover
@ValkRover Рік тому
Послушал с удовольствием. :) Удачи!
@smileborsh9780
@smileborsh9780 8 місяців тому
Даже ударение в слове «красивее» стоит правильно. 👏🏻💐
@user-cv1jn5qy4v
@user-cv1jn5qy4v Рік тому
Очень понравился формат. Сразу оформил подписку. Делай больше таких разборов, и добавляй их в отдельный плейлист на канале =)
@mtigames188
@mtigames188 Рік тому
Круто! Спс! С первого раза непонятно, пересмотрю на досуге еще несколько раз)
@iforvard
@iforvard Рік тому
Максимально понятно все стало, спасибо!
@halcyon-s
@halcyon-s 11 місяців тому
Большое спасибо за урок!
@niyazkhannanov5790
@niyazkhannanov5790 День тому
Спасибо! посмотрел несколько роликов - очень доходчиво
@Igor-tn7mq
@Igor-tn7mq Рік тому
Побольше бы разборов задачек 🔥👍
@VasillaRobocraft
@VasillaRobocraft Рік тому
Спасибо за ролик! С удовольствием посмотрел
@yaroslavandreyev4246
@yaroslavandreyev4246 Рік тому
Очень хорошо объясняете👍
@user-bj1ue3qs4m
@user-bj1ue3qs4m Рік тому
Хорош, отличное объяснение !
@polinakir2991
@polinakir2991 Рік тому
Супер! Красавчик!
@acthanger7420
@acthanger7420 10 місяців тому
Классный урок, очень доходчиво, пасибо))
@luckyiam3532
@luckyiam3532 Рік тому
Great. Thank you for the explanation. Now trees seems not so terrible...
@hopelesssuprem1867
@hopelesssuprem1867 Рік тому
Спасибо за классные видео. Продолжай выпускать задачки по faang
@seyapanda108
@seyapanda108 10 місяців тому
Спасибо за видео. В случае с деревьями желательно еще уметь решать dfs, bfs итерационно, а не только с помощью рекурсии. Если дерево будет выражено в список, то рекурсия уже не очень хороший вариант решения. Ну и не редко на собесах просят решить итерационно после решения с рекурсией
@ChannelYoJo
@ChannelYoJo Рік тому
Динамическое программирование на деревьях! Крутизна!
@saveekglushchenko6903
@saveekglushchenko6903 Рік тому
Думаю, что Вы хороший человек. Спасибо за видео
@Lammax2012
@Lammax2012 10 місяців тому
Отличное объяснение! Just keep going! )
@GrigoriySokolik
@GrigoriySokolik 10 місяців тому
Спасибо за интересный ролик. Удивительно, что решение с рекурсией "проходит".
@TheYozka
@TheYozka Рік тому
Хорошая подача материала
@NickRossik
@NickRossik 11 місяців тому
В книге грохаем алгоритмы я не очень понял бинарные деревья, но зато теперь как понял! 😁 Супер объяснение, спасибо.
@user-cu4pi6ir9q
@user-cu4pi6ir9q 10 місяців тому
Там не было деревьев…
@badcloud
@badcloud 11 місяців тому
Ого, поначалу зафтыкал, думал че за сложное объяснение, а на деле несколько строк кода емае. Мужик! Спасибо!
@tima-obzor
@tima-obzor Рік тому
Перешёл по рекам ютюба, подготовился, чаёк заварил. Накануне изучал видео о парадоксах математики и нобелевских лауреатах, доказавших ту или иную теорему. Так сказать был готов к удивляться, и что в итоге??? Теперь я понимаю из за каих специалистов у меня винда лагает)
@reHgoc
@reHgoc 11 місяців тому
спасибо за разбор. Помню как на собеседовании на Unity dev решал задачу через алгоритм Дэйкстры (вглубь и вширь), а оказывается есть более простой способ.
@Navalny_Forever
@Navalny_Forever Рік тому
Спасибо. Часть задач на бинарные деревья на лилкоде сделал, а часть отложил. Хотя для макс.пути понимал, что нужна рекурсия.
@go8tt
@go8tt Рік тому
ты классный парень, спасибо за такие ролики С:
@user-wb1bh7sb2x
@user-wb1bh7sb2x Рік тому
Каждый раз, когда собираюсь менять компанию, готовлюсь к таким задачам как в первый раз, затем на несколько лет забываю, и далее по кругу. Может быть лет 20 назад эти ОСНОВЫ ИЗ ЧЕГО ВСЕ СТРОИТСЯ и нужны были кому-то, сейчас для большиства разработки это вообще мимо. Впервые я изучил это все для собеседования, наверное, после 2х лет работы программистом, и никакого всевидящего ока в мир разработки мне не открылось, прошел собес и забыл, как всегда. С тем пор я поменял 4 компании и 3 страны, и заметил что зачастую на собесах попадаются консерваторы, которые считают, раз им это интересно, и раз они это заботанили, все вокруг должны это знать, и не важно что для проекта это нафиг не нужно, как будто это какие-то невероятные знания, смешно) Знание архитектурного дизайна намного важнее как по мне, потому что ты приходишь в компанию, и твой онбординг сокращается в разы, потому что ты уже скорее всего понимаешь как работает система. А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. Первая задача еще адекватная, но вторая это по-моему уже перебор, я бы наверное и решать ее не стал, потому что мне это тупо не интересно)
@MrOldschoolrocknroll
@MrOldschoolrocknroll Рік тому
Если занимаешься простейшим формашлёпством или CRUDошлёпством, где нет ни хайлоада ни интересных задач, то да, это не пригодится. Но как только захочешь отойти от чужих либ и написать своё (более подходящее и масштабируемое решение), то упрёшься в узкость своих знаний, да даже тупо не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме.
@user-wb1bh7sb2x
@user-wb1bh7sb2x Рік тому
@@MrOldschoolrocknroll оо подъехали спецы нефармашлепы! 1) Я написал "А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. ", с чего ты взял что я "даже тупо не знаю как работает структура данных" и призываю вообще на них забить? 2) Я написал это в контексте собеседований, что зачастую их спрашивают когда они на проекте вообще не нужны. Если ты курнул и решил "написать своё (более подходящее и масштабируемое решение)", то флаг тебе в руки, никто не скажет тебе что структуры и алгоритмы для них не нужны. 3) И если ты "не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме", то у меня для тебя плохие новости.
@MrOldschoolrocknroll
@MrOldschoolrocknroll Рік тому
​@@user-wb1bh7sb2x Как же у тебя бомбануло то господи. Я же не конкретно про тебя писал а об индустрии в целом. Но раз ты воспринял всё на свой счёт, то у тебя с этим похоже какие-то проблемы))
@maksims.3867
@maksims.3867 Рік тому
Красавчик!
@denvir2254
@denvir2254 10 місяців тому
Ооооочень подробно объясняешь)) Прям для младших классов как будто бы
@42jU29Mp
@42jU29Mp Рік тому
Про Space: O(n) для первой задачи не сразу догадался. Видео хорошее.
@leomysky
@leomysky 11 місяців тому
Спасибо за видео Не очень понял идею с второй задачей, но суть уловил
@imishka
@imishka Рік тому
Есть у меня смутное предположение что если все значения в дереве будут отрицательными, то maxpathsum выдаст 0, а не мах отрицательный ответ, для этого наверное answer должен быть равен по умолчанию значению самой верхней вершины.
@gheoblink8862
@gheoblink8862 Рік тому
Нет, по условию, мы имеем право взять 0 вершин, так что наш минимум - 0
@NoName-hi8bv
@NoName-hi8bv Рік тому
Тож так думаю. Что если стоит отрицательное значение, а ниже много положительных
@user-bc5nm6fe3m
@user-bc5nm6fe3m Рік тому
0 означает, что мы не берем левого\правого ребенка. Но после этого ответ для нашей вершины становится max(left, right) + val. Так что ошибки нет, и ответ может быть отрицательным, если положительных вершин вовсе нет
@imishka
@imishka Рік тому
​@@user-bc5nm6fe3mэто возвращает функция helper, параллельно она записывает в переменную класса answer (максимум среди answer=0 и тем что вернул helper на данном шаге) А далее цель maxpathsum просто вывести эту переменную, соответственно если все отрицательно то answer так и останется 0. Выше написали что это вроде как правильно если ничего не брать, но в таких случаях наверное лучше уточнять данный кейс.
@michaeldeoz
@michaeldeoz 11 місяців тому
@@gheoblink8862 разве условие задачи не найти максимальный путь? Если два значения отрицательны не значит что одно из них не может быть максимальным?
@Gribozhuy
@Gribozhuy Рік тому
Вторая задача - все же answer = Integer.MIN_VALUE; Так как в случае с деревом состоящим всего из одного отрицательного желемента - ответ будет 0, а должен быть - само это отрицательное число.
@slavakonashkov
@slavakonashkov Рік тому
Правильное замечание, но этого не достаточно. В коде, там где max, тоже нужно логику поменять.
@Gribozhuy
@Gribozhuy Рік тому
@@slavakonashkov нет, в остальном все правильно.
@tsv83
@tsv83 Рік тому
Просто решение у автора некорректное. Либо задача поставлена криво. Автор декларирует "дальше не пойдём" но по факту это работает только если отрицательный узел один и сравнивается с мнимым узлом, чьё значение 0. Если у 5 будет не один ребёнок -2, а ещё один, скажем -5 - решение будет несоответствовать задаче.
@user-xh1ms1ke6c
@user-xh1ms1ke6c 11 місяців тому
@@tsv83 работать будет и с вашим примером, поскольку с нулём сравнивается и helper(node.left) и helper(node.right), который, в свою очередь содержит максимальную сумму дальнейшего пути, то есть, в момент сравнивания уже учитывается, есть ли там что-то дальше, как то с "-3", у которой ребёнок "5"
@tsv83
@tsv83 11 місяців тому
@@user-xh1ms1ke6c нет, не будет
@oleksandrl4136
@oleksandrl4136 7 місяців тому
Дуже корисний канал. Дякую за Вашу роботу.
@user-mi2st3eu3u
@user-mi2st3eu3u Рік тому
Продолжай, брат ) У меня ничего не получается на литкоде )) Хотя принцип обхода знаю, но сложно уложить стэк в голове ))
@user-pg8ry1tm3t
@user-pg8ry1tm3t Рік тому
Стек на самом деле самая простая структура после массива… можно представить себе тарелку с блинами - ты ж с низу блин не вытащишь и вниз не положишь🥴
@user-mi2st3eu3u
@user-mi2st3eu3u Рік тому
@@user-pg8ry1tm3t да, так-то все понятно )) просто когда данные в стеке и тебе надо о них помнить это другое нежели тарелки представить )) это тарелки с данными ))
@tsaykostya
@tsaykostya 11 місяців тому
Классный канал, автор приятный парень и никакого высокомерия
@HOMEP11
@HOMEP11 Рік тому
благодарю!
@user-cj1mq9fu3c
@user-cj1mq9fu3c Рік тому
Ха-ха. Сегодня защищал лабораторную в универе, плохо сдал, а вот сейчас захожу в ютуб, чтобы найти, под какой видосик покушать, и вижу это! 🤩🤩🤩 Леди Фортуна, интернет и ютуб, спасибо вам! 😅
@danilabagatyriya5737
@danilabagatyriya5737 5 місяців тому
Когда сидел и не понимал, как решать, а потом сразу понял🙏🏾 Just do it!
@bass1387
@bass1387 11 місяців тому
Это гениально!!))
@overskam2699
@overskam2699 Рік тому
побольше бы таких видео
@user-xj7te3qs8u
@user-xj7te3qs8u Рік тому
Лучший ❤ 😊
@AlexZvukov
@AlexZvukov Рік тому
Отлично, спасибо. PS: качество подтянул 👍
@sashalukin
@sashalukin Рік тому
Спасибо, учусь :)
@golodnenkiy
@golodnenkiy Місяць тому
Классные задачи, спасибо автору. P. s. Не описать ту радость, когда сначала пытаешься решить задачу, а потом смотришь ролик, где твоё решение совпадает с решением автора. p.p.s Только сделать Answer и проверять на max в helper-e, я не догодался, а просто запихивал возможные пути в лист, а потом из него макс брал.
@dreambreaker226
@dreambreaker226 11 місяців тому
Да . столько раз ты это объяснял в элементарном введении в К.М. а они всё равно не понимают и спорят. Пасибо за ролик
@user-vv5jf6iy4j
@user-vv5jf6iy4j Рік тому
лучшие разборы задач. у меня с литкодом разговор короткий, я его решать не умею, но приходится. а эти разборы вносят хоть какую-то светлую мысль в беспросветное.
@user-vv5jf6iy4j
@user-vv5jf6iy4j Рік тому
@@ilya9261 задачи по дп слишком разные. книги раскрывают или совсем базовые задачи, которые не попадутся на собеседовании, или книги написаны исключительно для олимпиадников. потому что как раз из олимпиад эти задачи и вышли. я решил 60(возможно не показатель) задач по дп на литкоде. с барского плеча 10 максимум повторились. но в основном это довольно уникальные задачи, которые чаще всего решаются как по учебнику(рекурсия с мемоизацией, bottom up и может оптимизированное решение) но дойти к рекуррентому соотношению, я считаю, вообще не просто. ну или все вокруг меня слишком умные и им проще решать)
@ilya9261
@ilya9261 Рік тому
@@user-vv5jf6iy4j а стоп, ну раз ты нарешал 60 задач по дп без подглядываний, то с чего бы ты тупил то на подобных задачах как в видео? она решается проще простого. Либо не интуитивно понимаешь свои же решения, либо хз в чем проблема. 60 не показатель, но уже что-то, не 0 (у меня сейчас меньше и я трудоустроен), продолжай в том же духе)
@user-vv5jf6iy4j
@user-vv5jf6iy4j Рік тому
@@ilya9261 я перечитал свой коммент и понял, что забыл написать, что я так и не научился решать дп задачи)
@ilya9261
@ilya9261 Рік тому
@@user-vv5jf6iy4j дак ты же 60 штук решил. Как решал?
@Saby1983x
@Saby1983x Рік тому
@@user-vv5jf6iy4j > но дойти к рекуррентому соотношению, я считаю, вообще не просто. ну или все вокруг меня слишком умные и им проще решать) Это фигня и в жизни редко пригождается, поэтому примеры довольно вымученные. Я программирую 22 года, 10 в качестве хобби и 12 профессионально. Подобные задачи пригодились 3 раза - 2 в качестве хобби (игровой проект) и 1 на работе - тоже игровой, совершенно не типичный проект. Мой совет - требуют leetcode? пожелайте счастливого пути и ищите руководителя, который понимает, какие задачи Вы будете писать на работе. Если Вы не пишете AI для игр, то с подобными задачи будете иметь дело раз в пятилетку. Сядете, спокойно продумаете алгоритм (да, вместо 20 минут возможно целый день потратите) - но я Вас уверяю, отлаживать алгоритм и писать подходящие структуры для быстрой его работы (чтобы оно занимало вменяемое время и при этом можно было сохранить вне 1 Гигабайта) - Вы будете писать гораздо дольше.
@user-ev7uf3hi2s
@user-ev7uf3hi2s Рік тому
Как раз вчера в университете начали проходить эти деревья)
@saimonshaplygin7867
@saimonshaplygin7867 11 місяців тому
Привет! Саш, спасибо за разборы. У тебя очень хорошо получается. Рассказываешь сложные вещи доступным языком. Во второй задачке ошибка при инициализации поля answer. Изначально оно должно быть минус бесконечность. Так как если подать на вход функции дерево с одной вершиной, значение которой равно отрицательному числу. В версии на видео в качестве ответа мы получим 0, а не отрицательное число ps. Может быть кто-то уже писал об ошибке, но я не нашел в комментах
@alexyevdokimov642
@alexyevdokimov642 10 місяців тому
И не только инициализация, там вообще с нулем нельзя сравнивать. Надо с минимально отрицательным. С чего автор решил, что понятие максимум это только для положительных чисел. А если там во всех узлах отрицательные value? Уже не будет правильного ответа? Ну а по сути, логика в целом верная. А рекурсия - это все равно зло :)
@Game_Pro_
@Game_Pro_ 3 місяці тому
а кем работаешь? просто интересн окакая зарплата@@alexyevdokimov642
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Рік тому
Я смотрел твои видео чуть больше года назад, получил оффер с релокацией в европу) Теперь смотрю твои видео перед собеседованием в яндекс, но в этот раз решил подписаться)
@Gr-wv9rb
@Gr-wv9rb Рік тому
В Европе не сложилось?
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Рік тому
@@Gr-wv9rb сложилось, просто яндекс предлагает больше денег, при этом ехать не далеко
@melheor4909
@melheor4909 Рік тому
Я после его видосов получил офферы на альфа центавру, а второй на Ксандар. Вот думаю куда лететь
@eugenefedoryachenko8793
@eugenefedoryachenko8793 Рік тому
@@melheor4909 я если что не писал, что я только после его видосов получил оффер, я в процессе подготовки натыкался на его видео, и объяснения мне понравились, даже е смотря на то, что тогда я собесился на позицию мидла в ts, а теперь на позицию синьора в go)
@melheor4909
@melheor4909 Рік тому
@@eugenefedoryachenko8793 да я понял))
@user-hc2rx3ge2z
@user-hc2rx3ge2z Рік тому
Во второй задаче можно использовать центроидную декомпозицию дерева, мне кажется это идейно проще
@user-jg7ly1ib2z
@user-jg7ly1ib2z Рік тому
Спасибо
@airestonia
@airestonia 11 місяців тому
Очень хорошее видео! Огромное спасибо автору. Обрадовался когда увидел, что код на Java. Эх, нам бы вас в нашу команду 😊
@clenbuterol4989
@clenbuterol4989 11 місяців тому
Какую команду вашу
@tesohi
@tesohi Місяць тому
спасибо!
@mew6085
@mew6085 Рік тому
Вторая пожестче, понял со второго раза) 😂
@tastebublik
@tastebublik Рік тому
Спасибо за разбор, деревья моя ахилесова пята
@rudolfsikorsky7900
@rudolfsikorsky7900 Рік тому
Спасибо, очень вовремя наткнулся на это видео! Как раз по работе надо решить дерево :) И к вопросу о том нужна ли программисту математика - НУЖНА! И не только для проникновения в Гугол :) Вот, я обычный вайтишник и мне понадобилась! Впервые за два года работы, но понадобилась :)
@user-ll2xw7tn6v
@user-ll2xw7tn6v 11 місяців тому
Это не та математика, о которой говорят что она не нужна. Это дискретная математика. А как правило не нужны, матан, тервер и геометрия. Конечно есть разделы, в которых нужна и геометрий (движки для игр, камера, свет) и тервер (всякие распознавания изображений), но это не программисты решают такие задачи, а математики.
@user-xr7ou1xf9x
@user-xr7ou1xf9x 8 місяців тому
Александр, такой вопрос. А что если попробовать сделать хвостовую рекурсию? Ведь по идее тогда нам не нужно хранить все ноды в памяти. Просто функция будет чем-то вроде int maxPathSum(TreeNode root, int intermediateSum). Ведь тогда сложность алгоритма по памяти будет константа, O(1), верно? UPD. Подумал немного. По идее хвостовая может и не получиться, но можно попробовать использовать стек для хранения нод дерева.
@prituladima
@prituladima Рік тому
Просто за факт этого видео - лайк
@sb-dor
@sb-dor 26 днів тому
Классно!
@umni_kot
@umni_kot Рік тому
чувак, не пропадай на год) Было бы интересно послушать про задачи из реальной работы в гугле. Не в точности задачи показывать понятное дело, а на похожих примерах рассказать.
@sashalukin
@sashalukin Рік тому
Кстати, неплохая идея для видоса. Я еще работаю в андройде на open source, поэтому может даже на реальных примерах смогу показать
@umni_kot
@umni_kot Рік тому
@@sashalukin круто!) Ждем
@user-ge6pt5lp9u
@user-ge6pt5lp9u Місяць тому
Ясность!❤
@arenroger6507
@arenroger6507 Рік тому
Супер
@meerable
@meerable Рік тому
Я что-то про путь «9-> -10 -> 20..» не дополнял. У нас же дерево, а не двунаправленный ориентированный граф. И все пути идут только от корня вниз.. к листьям Из определения же видно, что из узла нельзя попасть назад.. потому что туда нет ссылки. Нельзя вернуться..
@UnrealSPh
@UnrealSPh Рік тому
Спасибо за видео. Единственное, хотелось бы уточнить во второй задаче. Наверное в требования входило условие, что результат должен быть положительным. В противном случае мы не покрыл кейс когда все ноды содержат отрицательные значения. Наибольший среди отрицательных тоже можно найти
@Jimoshi1
@Jimoshi1 11 місяців тому
Я конечно может чего не понимаю, но разве отрицательные значения не меньше положительных ПО УМОЛЧАНИЮ. Если все вершины отр. то максимальное будет самое меньшее отрицательное.
@the__Wizard
@the__Wizard 11 місяців тому
@@Jimoshi1 в этом то и прикол, что такое решение не рассмотрено
@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 что хочешь устроиться работать к ним, и попробуй получить инвайты на собесы.
Собеседование в Facebook - Разбор Для Начинающих
16:16
Завтра в школу с... | Шоу-квиз «Вопросики»
00:28
Телеканал СОЛНЦЕ
Переглядів 3,1 млн
Підставка для яєць
00:37
Afinka
Переглядів 106 тис.
Задача из Собеседования на 160,000 Евро в Год
13:27
Software developer at 38: No Country For Old Men?
5:35
Денис Игнатенко
Переглядів 16 тис.
Я Исполнил Мечту и Устроился в Google
9:51
Саша Лукин
Переглядів 537 тис.
УХОЖУ РАБОТАТЬ в MICROSOFT
45:11
itpedia
Переглядів 927 тис.
Как бы я учил программирование сейчас?
7:17
Саша Лукин
Переглядів 345 тис.