Тёмный

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

Саша Лукин
Подписаться 83 тыс.
Просмотров 230 тыс.
50% 1

Разбираем 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 Код второй задачи

Опубликовано:

 

6 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 578   
@sashalukin
@sashalukin Месяц назад
Создал Telegram канал, в котором рассказываю о жизни в Лондоне, работе в Google и подготовке к собеседованиям. Подписывайтесь: t.me/saschalukin
@alexanderpoplooukhin7448
@alexanderpoplooukhin7448 Год назад
Объяснение - просто 🔥. Это тот случай, когда у автора есть реальная способность доходчиво и лаконично объяснить алгоритмы и структуры данных
@victorprohorov6201
@victorprohorov6201 Год назад
а я не особо понял. лучше было бы если бы автор показал как это работает на примере
@yaroslavandreyev4246
@yaroslavandreyev4246 Год назад
@@victorprohorov6201 а чем этот пример, был не примером?
@victorprohorov6201
@victorprohorov6201 Год назад
@@yaroslavandreyev4246 я не понял как мы переходим по вершинам.
@user-hg8mk8tb2r
@user-hg8mk8tb2r Год назад
@@victorprohorov6201 рекурсивно, начиная с корня, до всех листов. Стрелки только немного сбивают - реально граф неориентированный, раз путь может идти от левого поддерева через вершину в правое поддерево.
@sozinovss
@sozinovss Год назад
Александр, Спасибо! . У тебя талант объяснять сложные вещи, не останавливайся! Не оторваться - очень понятно и легко усваивается. Затягивает - утром вместо того, чтобы кофе налить - пошел смотреть другие ролики.
@lufavetskaya
@lufavetskaya Год назад
После обнаружения таких замечательных пояснений, начинаешь очаровываться алгоритмами! Спасибо за вашу работу. Нереально приятно изучать тему, с таким обучающим контентом❤
@lostislandable
@lostislandable Год назад
POV устраиваешься в среднестатистический проект: просят на собеседовании решить задачу на алгоритмы и математические знания а после офера отправляют таски по верстке 🤯
@nickoni4
@nickoni4 Год назад
Ну так радоваться надо) изи мани)))
@user-rl8fy6xe1t
@user-rl8fy6xe1t Год назад
Да, но это не плохо
@bass1387
@bass1387 Год назад
Задачи могут быть разные, зависит от потребностей бизнеса))
@DevBer
@DevBer Год назад
Лишь бы платили как за алгиритмические задачи с вышматом под капотом =))
@lostislandable
@lostislandable Год назад
@@DevBer было б так, не было б пределу счастья :)
@Nardan78
@Nardan78 Год назад
Объяснение просто огонь. Сейчас как раз прохожу тему алгоритмов и структур данных, а ютуб подсунул видео. Несложные алгоритмы и сам нормально решаю, а вот структуры данных начали вызывать какой-то необъяснимый страх. Не думал, что весь алгоритм настолько прост. Спасибо!
@user-to1sn4ft5e
@user-to1sn4ft5e Год назад
Очень круто, спасибо. Давно хотел разобраться с деревьями
@ILikeActions
@ILikeActions Год назад
Отличный разбор и отличная подача! Ждем следующей задачи)
@sashalukin
@sashalukin Год назад
Спасибо!
@qumi645
@qumi645 Год назад
Шикарная подача! Всё доступно и понятно, особенно с учетом того, что я далек от программирования:)
@user-gs7ro3tl9t
@user-gs7ro3tl9t 7 месяцев назад
Я считаю, что это один из лучших каналов на ютубе по подготовке к алгоритмической секции! Спасибо огромное!!!
@user-zf9gl8fr5g
@user-zf9gl8fr5g Год назад
Разбор задачи хорошо подан. Классный контент. Буду ждать еще разборы алгоритмов
@georgiirozhnev
@georgiirozhnev Год назад
Блестящий разбор! Ждём продолжения
@2difficult2do
@2difficult2do Год назад
Хорошая подача и подробное объяснение. Буду заглядывать 😊
@user-cy5rq6ig6s
@user-cy5rq6ig6s Год назад
Лучший! Приятно смотреть) Продолжай записывать видео и не забрасывай)
@user-hg6tn5xn2k
@user-hg6tn5xn2k Год назад
шикарно, спасибо за разбор, с первой легко было, а вторая заставила подольше посидеть)
@sergiigordiienko2494
@sergiigordiienko2494 Год назад
Приятно смотреть и слушать. Очень понятное и детальное объяснение. Большое спасибо!
@vitali5615
@vitali5615 2 месяца назад
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!
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
Дружище, спасибо тебе большое, пока твой разбор лучшее, что я видел в Ютубе для начинающих, разборы очень качественные, может сделаешь чек лист для джунов, что учить и как, спасибо!
@larnikodis1501
@larnikodis1501 Год назад
Саня, классный парень без понтов и умный. Так держать! Еще и спортивный.
@infomail8550
@infomail8550 Год назад
Очень классно все объяснил. Супер. Спасибо
@goodvin8554
@goodvin8554 Год назад
Спасибо за разбор. Хотелось бы почаще.
@smileborsh9780
@smileborsh9780 9 месяцев назад
Даже ударение в слове «красивее» стоит правильно. 👏🏻💐
@Dim4581
@Dim4581 Год назад
Спасибо!) отличный разбор. Интересно увидеть задачу о эффективном наполнении рюкзака
@xlv4553
@xlv4553 Год назад
Топ, спасибо большое за такое объяснение, жду новых задач!
@lyubov_zhulina
@lyubov_zhulina 10 месяцев назад
Если хотите понять деревья, посмотрите это видео 👌 идеально, большое спасибо за столь подробное объяснение 🔥🔥🔥
@ValkRover
@ValkRover Год назад
Послушал с удовольствием. :) Удачи!
@AnderPython-tw3kp
@AnderPython-tw3kp Год назад
Интересная задача. Объяснено довольно доходчиво! Спасибо
@RockyTheDog756
@RockyTheDog756 Год назад
Одна из лучших подач материала!
@enitefall
@enitefall Год назад
даже я понял после такого понятного объяснения! Супер!
@oOJIEWAOo
@oOJIEWAOo Год назад
Ура! Ты вернулся! Спасибо тебе за разбор
@FenBender01
@FenBender01 Год назад
Отличный разбор. Буду давать эту задачу на собеседованиях :)
@user-cv1jn5qy4v
@user-cv1jn5qy4v Год назад
Очень понравился формат. Сразу оформил подписку. Делай больше таких разборов, и добавляй их в отдельный плейлист на канале =)
@user-pv5jf8vp5b
@user-pv5jf8vp5b 9 месяцев назад
Круто! Прям все по полочкам, реально класс! Спасибо👍🙏
@niyazkhannanov5790
@niyazkhannanov5790 Месяц назад
Спасибо! посмотрел несколько роликов - очень доходчиво
@_alexanderd
@_alexanderd Год назад
Спасибо за разбор задачи!
@mtigames188
@mtigames188 Год назад
Круто! Спс! С первого раза непонятно, пересмотрю на досуге еще несколько раз)
@zebrasbtl
@zebrasbtl Год назад
Просто супер, все просто и понятно!
@Lammax2012
@Lammax2012 11 месяцев назад
Отличное объяснение! Just keep going! )
@VasillaRobocraft
@VasillaRobocraft Год назад
Спасибо за ролик! С удовольствием посмотрел
@user-kp5og5so7f
@user-kp5og5so7f Год назад
Спасибо за понятное объяснение.
@iforvard
@iforvard Год назад
Максимально понятно все стало, спасибо!
@acthanger7420
@acthanger7420 11 месяцев назад
Классный урок, очень доходчиво, пасибо))
@yaroslavandreyev4246
@yaroslavandreyev4246 Год назад
Очень хорошо объясняете👍
@halcyon-s
@halcyon-s Год назад
Большое спасибо за урок!
@user-bj1ue3qs4m
@user-bj1ue3qs4m Год назад
Хорош, отличное объяснение !
@Mexanikkmm
@Mexanikkmm Год назад
Спасибо, довольно понятно и очень полезно.
@tima-obzor
@tima-obzor Год назад
Перешёл по рекам ютюба, подготовился, чаёк заварил. Накануне изучал видео о парадоксах математики и нобелевских лауреатах, доказавших ту или иную теорему. Так сказать был готов к удивляться, и что в итоге??? Теперь я понимаю из за каих специалистов у меня винда лагает)
@Igor-tn7mq
@Igor-tn7mq Год назад
Побольше бы разборов задачек 🔥👍
@badcloud
@badcloud Год назад
Ого, поначалу зафтыкал, думал че за сложное объяснение, а на деле несколько строк кода емае. Мужик! Спасибо!
@polinakir2991
@polinakir2991 Год назад
Супер! Красавчик!
@hopelesssuprem1867
@hopelesssuprem1867 Год назад
Спасибо за классные видео. Продолжай выпускать задачки по faang
@saveekglushchenko6903
@saveekglushchenko6903 Год назад
Думаю, что Вы хороший человек. Спасибо за видео
@dimasw99
@dimasw99 22 дня назад
От души братишка, под пиво вечерком посмотреть самое оно!
@TheYozka
@TheYozka Год назад
Хорошая подача материала
@ChannelYoJo
@ChannelYoJo Год назад
Динамическое программирование на деревьях! Крутизна!
@seyapanda108
@seyapanda108 11 месяцев назад
Спасибо за видео. В случае с деревьями желательно еще уметь решать dfs, bfs итерационно, а не только с помощью рекурсии. Если дерево будет выражено в список, то рекурсия уже не очень хороший вариант решения. Ну и не редко на собесах просят решить итерационно после решения с рекурсией
@go8tt
@go8tt Год назад
ты классный парень, спасибо за такие ролики С:
@GrigoriySokolik
@GrigoriySokolik 11 месяцев назад
Спасибо за интересный ролик. Удивительно, что решение с рекурсией "проходит".
@reHgoc
@reHgoc Год назад
спасибо за разбор. Помню как на собеседовании на Unity dev решал задачу через алгоритм Дэйкстры (вглубь и вширь), а оказывается есть более простой способ.
@NickRossik
@NickRossik Год назад
В книге грохаем алгоритмы я не очень понял бинарные деревья, но зато теперь как понял! 😁 Супер объяснение, спасибо.
@user-cu4pi6ir9q
@user-cu4pi6ir9q 11 месяцев назад
Там не было деревьев…
@P0dCasts.io6o
@P0dCasts.io6o Год назад
Спасибо. Часть задач на бинарные деревья на лилкоде сделал, а часть отложил. Хотя для макс.пути понимал, что нужна рекурсия.
@42jU29Mp
@42jU29Mp Год назад
Про Space: O(n) для первой задачи не сразу догадался. Видео хорошее.
@bass1387
@bass1387 Год назад
Это гениально!!))
@user-fy6dm6mw9y
@user-fy6dm6mw9y 15 дней назад
Спасибо за полезное видео
@tsaykostya
@tsaykostya Год назад
Классный канал, автор приятный парень и никакого высокомерия
@luckyiam3532
@luckyiam3532 Год назад
Great. Thank you for the explanation. Now trees seems not so terrible...
@BellaLugoshi
@BellaLugoshi Год назад
напоминает обучение в автошколе - я купил тонюсенькую книжку с ПДД и учу правила, а остальные накупили разборы билетов и усиленно штудируют их. Но да - я потом сел и поехал на своем Заз-968М, а девочки расселись по новым Кайенам. Так что может вы и правы XD
@denvir2254
@denvir2254 11 месяцев назад
Ооооочень подробно объясняешь)) Прям для младших классов как будто бы
@maksims.3867
@maksims.3867 Год назад
Красавчик!
@user-xj7te3qs8u
@user-xj7te3qs8u Год назад
Лучший ❤ 😊
@leomysky
@leomysky Год назад
Спасибо за видео Не очень понял идею с второй задачей, но суть уловил
@oleksandrl4136
@oleksandrl4136 9 месяцев назад
Дуже корисний канал. Дякую за Вашу роботу.
@HOMEP11
@HOMEP11 Год назад
благодарю!
@sb-dor
@sb-dor 2 месяца назад
Классно!
@AlexZvukov
@AlexZvukov Год назад
Отлично, спасибо. PS: качество подтянул 👍
@sashalukin
@sashalukin Год назад
Спасибо, учусь :)
@user-wb1bh7sb2x
@user-wb1bh7sb2x Год назад
Каждый раз, когда собираюсь менять компанию, готовлюсь к таким задачам как в первый раз, затем на несколько лет забываю, и далее по кругу. Может быть лет 20 назад эти ОСНОВЫ ИЗ ЧЕГО ВСЕ СТРОИТСЯ и нужны были кому-то, сейчас для большиства разработки это вообще мимо. Впервые я изучил это все для собеседования, наверное, после 2х лет работы программистом, и никакого всевидящего ока в мир разработки мне не открылось, прошел собес и забыл, как всегда. С тем пор я поменял 4 компании и 3 страны, и заметил что зачастую на собесах попадаются консерваторы, которые считают, раз им это интересно, и раз они это заботанили, все вокруг должны это знать, и не важно что для проекта это нафиг не нужно, как будто это какие-то невероятные знания, смешно) Знание архитектурного дизайна намного важнее как по мне, потому что ты приходишь в компанию, и твой онбординг сокращается в разы, потому что ты уже скорее всего понимаешь как работает система. А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. Первая задача еще адекватная, но вторая это по-моему уже перебор, я бы наверное и решать ее не стал, потому что мне это тупо не интересно)
@MrOldschoolrocknroll
@MrOldschoolrocknroll Год назад
Если занимаешься простейшим формашлёпством или CRUDошлёпством, где нет ни хайлоада ни интересных задач, то да, это не пригодится. Но как только захочешь отойти от чужих либ и написать своё (более подходящее и масштабируемое решение), то упрёшься в узкость своих знаний, да даже тупо не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме.
@user-wb1bh7sb2x
@user-wb1bh7sb2x Год назад
@@MrOldschoolrocknroll оо подъехали спецы нефармашлепы! 1) Я написал "А эти стуктуры, достаточно знать что это такое, что такое бывает, и какая структура для чего работает, и для этого не обязательно решать какие-то сложные задачи и разбираться в них до транзиторов. ", с чего ты взял что я "даже тупо не знаю как работает структура данных" и призываю вообще на них забить? 2) Я написал это в контексте собеседований, что зачастую их спрашивают когда они на проекте вообще не нужны. Если ты курнул и решил "написать своё (более подходящее и масштабируемое решение)", то флаг тебе в руки, никто не скажет тебе что структуры и алгоритмы для них не нужны. 3) И если ты "не зная как работает структура данных не сможешь оценить и быть уверенным, что нагруженное место не взорвётся в рантайме", то у меня для тебя плохие новости.
@MrOldschoolrocknroll
@MrOldschoolrocknroll Год назад
​@@user-wb1bh7sb2x Как же у тебя бомбануло то господи. Я же не конкретно про тебя писал а об индустрии в целом. Но раз ты воспринял всё на свой счёт, то у тебя с этим похоже какие-то проблемы))
@overskam2699
@overskam2699 Год назад
побольше бы таких видео
@golodnenkiy
@golodnenkiy 2 месяца назад
Классные задачи, спасибо автору. P. s. Не описать ту радость, когда сначала пытаешься решить задачу, а потом смотришь ролик, где твоё решение совпадает с решением автора. p.p.s Только сделать Answer и проверять на max в helper-e, я не догодался, а просто запихивал возможные пути в лист, а потом из него макс брал.
@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 Гигабайта) - Вы будете писать гораздо дольше.
@danilabagatyriya5737
@danilabagatyriya5737 6 месяцев назад
Когда сидел и не понимал, как решать, а потом сразу понял🙏🏾 Just do it!
@user-ev7uf3hi2s
@user-ev7uf3hi2s Год назад
Как раз вчера в университете начали проходить эти деревья)
@user-cj1mq9fu3c
@user-cj1mq9fu3c Год назад
Ха-ха. Сегодня защищал лабораторную в универе, плохо сдал, а вот сейчас захожу в ютуб, чтобы найти, под какой видосик покушать, и вижу это! 🤩🤩🤩 Леди Фортуна, интернет и ютуб, спасибо вам! 😅
@user-mi2st3eu3u
@user-mi2st3eu3u Год назад
Продолжай, брат ) У меня ничего не получается на литкоде )) Хотя принцип обхода знаю, но сложно уложить стэк в голове ))
@user-pg8ry1tm3t
@user-pg8ry1tm3t Год назад
Стек на самом деле самая простая структура после массива… можно представить себе тарелку с блинами - ты ж с низу блин не вытащишь и вниз не положишь🥴
@user-mi2st3eu3u
@user-mi2st3eu3u Год назад
@@user-pg8ry1tm3t да, так-то все понятно )) просто когда данные в стеке и тебе надо о них помнить это другое нежели тарелки представить )) это тарелки с данными ))
@user-nx7jv6hd4q
@user-nx7jv6hd4q Год назад
Я с похмелья...чуть с ума не сошел вникая в это...
@arenroger6507
@arenroger6507 Год назад
Супер
@user-hc2rx3ge2z
@user-hc2rx3ge2z Год назад
Во второй задаче можно использовать центроидную декомпозицию дерева, мне кажется это идейно проще
@tastebublik
@tastebublik Год назад
Спасибо за разбор, деревья моя ахилесова пята
@tesohi
@tesohi 3 месяца назад
спасибо!
@user-jg7ly1ib2z
@user-jg7ly1ib2z Год назад
Спасибо
@saiph41182
@saiph41182 Год назад
Норм контент пилишь)
@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 что хочешь устроиться работать к ним, и попробуй получить инвайты на собесы.
@dreambreaker226
@dreambreaker226 Год назад
Да . столько раз ты это объяснял в элементарном введении в К.М. а они всё равно не понимают и спорят. Пасибо за ролик
@saimonshaplygin7867
@saimonshaplygin7867 Год назад
Привет! Саш, спасибо за разборы. У тебя очень хорошо получается. Рассказываешь сложные вещи доступным языком. Во второй задачке ошибка при инициализации поля answer. Изначально оно должно быть минус бесконечность. Так как если подать на вход функции дерево с одной вершиной, значение которой равно отрицательному числу. В версии на видео в качестве ответа мы получим 0, а не отрицательное число ps. Может быть кто-то уже писал об ошибке, но я не нашел в комментах
@alexyevdokimov642
@alexyevdokimov642 11 месяцев назад
И не только инициализация, там вообще с нулем нельзя сравнивать. Надо с минимально отрицательным. С чего автор решил, что понятие максимум это только для положительных чисел. А если там во всех узлах отрицательные value? Уже не будет правильного ответа? Ну а по сути, логика в целом верная. А рекурсия - это все равно зло :)
@Game_Pro_
@Game_Pro_ 4 месяца назад
а кем работаешь? просто интересн окакая зарплата@@alexyevdokimov642
@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 Год назад
@@gheoblink8862 разве условие задачи не найти максимальный путь? Если два значения отрицательны не значит что одно из них не может быть максимальным?
@airestonia
@airestonia Год назад
Очень хорошее видео! Огромное спасибо автору. Обрадовался когда увидел, что код на Java. Эх, нам бы вас в нашу команду 😊
@clenbuterol4989
@clenbuterol4989 Год назад
Какую команду вашу
@user-ge6pt5lp9u
@user-ge6pt5lp9u 3 месяца назад
Ясность!❤
@mew6085
@mew6085 Год назад
Вторая пожестче, понял со второго раза) 😂
@kseniiaefremova4696
@kseniiaefremova4696 2 месяца назад
Чудесная подача теории! И код на джаве действительно понятен, хоть я и по питону больше! У меня вопрос по первой задаче: почему при вычислении space comlexity худший вариан - это дерево, которое идет только на лево или только на право?
@Gribozhuy
@Gribozhuy Год назад
Вторая задача - все же answer = Integer.MIN_VALUE; Так как в случае с деревом состоящим всего из одного отрицательного желемента - ответ будет 0, а должен быть - само это отрицательное число.
@slavakonashkov
@slavakonashkov Год назад
Правильное замечание, но этого не достаточно. В коде, там где max, тоже нужно логику поменять.
@Gribozhuy
@Gribozhuy Год назад
@@slavakonashkov нет, в остальном все правильно.
@tsv83
@tsv83 Год назад
Просто решение у автора некорректное. Либо задача поставлена криво. Автор декларирует "дальше не пойдём" но по факту это работает только если отрицательный узел один и сравнивается с мнимым узлом, чьё значение 0. Если у 5 будет не один ребёнок -2, а ещё один, скажем -5 - решение будет несоответствовать задаче.
@user-xh1ms1ke6c
@user-xh1ms1ke6c Год назад
@@tsv83 работать будет и с вашим примером, поскольку с нулём сравнивается и helper(node.left) и helper(node.right), который, в свою очередь содержит максимальную сумму дальнейшего пути, то есть, в момент сравнивания уже учитывается, есть ли там что-то дальше, как то с "-3", у которой ребёнок "5"
@tsv83
@tsv83 Год назад
@@user-xh1ms1ke6c нет, не будет
@ihormilevskyi8175
@ihormilevskyi8175 Год назад
У тебя очень классный канал, вот бы ты чаще выпускал ролики. Очень сильно жду, ты предаешь мотивации идти дальше по IT. И ещё вопрос, кем конкретно ты работаешь? FrontEnd, BackEnd, Computer Science или что-то иное?
@sashalukin
@sashalukin Год назад
Спасибо! Всегда был Java backend, но сейчас в андройде, делаю фичи для новых версий. Тоже Java/C++. Но такие задачки в фаанг на всех спрашивают - и backend, и frontend, и ml
@ihormilevskyi8175
@ihormilevskyi8175 Год назад
@@sashalukin Спасибо за быстрый ответ, знаю что алгоритмы нужны везде)) Есть ли у тебя какая-то книга по алгоритмам которую ты бы мог порекомендовать, знаю только Grokking Algorithms
@sashalukin
@sashalukin Год назад
Если именно для собесов, то Cracking the Coding Interview, она очень известная, но мне как-то не очень зашло. А в целом по алгоритмам - Introduction to Algorithms Кормена
Далее
🎙Я ВСЁ ЕЩЕ ВЕЩАЮ 📻
2:44:57
Просмотров 884 тыс.
Что такое WebSockets (веб-сокеты)
2:59
УХОЖУ РАБОТАТЬ в MICROSOFT
45:11
Просмотров 933 тыс.