【Day19 中高難度算法挑戰(zhàn)】二叉樹中的最大路徑和
介紹
總而言之是時(shí)候利用暑假鍛煉一下算法技術(shù),一提算法面試就面露難色的情形總不能一直持續(xù)下去。本欄目面向有一定基礎(chǔ)的編程愛好者,每天(如果up不鴿)分享并解析一道LeetCode中高難度題目(通常是hard)。有興趣的小伙伴可以一起跟著做并且討論解法。目前的教材是花花醬的Leetcode Problem List【1】.
適合人群:
有一定算法基礎(chǔ),但是還未能順利通過筆試/面試,總覺得算法題目想不明白的你。
不適合人群:
算法入門級(jí)選手(一上來就做難題可能并不合適,建議首先專注簡(jiǎn)單/中等題目)
非常不適合人群:
算法競(jìng)賽選手(這種小兒科的問題完全是在浪費(fèi)您的時(shí)間)
過往題目在這里!

二叉樹中的最大路徑和
題目看這里,lintcode第94題,middle難度:
https://www.lintcode.com/problem/7/description/
強(qiáng)烈建議讀者自己先做(不過真的會(huì)有讀者嗎,笑),有任何問題歡迎在評(píng)論區(qū)討論,up看到了會(huì)及時(shí)回復(fù)。做完了歡迎在評(píng)論區(qū)打卡~
解析
本題的挑戰(zhàn)之處在于,需要明確最大的路徑不一定通過根節(jié)點(diǎn)。這樣就有分類討論的余地,要么當(dāng)前我們把左中右盡可能的連起來,要么我們已經(jīng)在左右子樹中找到了最大路徑。

思考樂園
如果已知所有值都為正數(shù),這道題目的解法會(huì)怎樣簡(jiǎn)化?歡迎將答案寫在評(píng)論區(qū)~
音樂推薦
有加班的預(yù)感...來自法里達(dá)的得了吧張小姐,送給不怎么喜歡上班的你。
教材鏈接
【1】https://zxi.mytechroad.com/blog/leetcode-problem-categories/