付費限定

一題多解: 二元樹裡,最大Level sum是在哪一層? Leetcdoe #1161

閱讀時間約 5 分鐘

題目敘述

題目會給我們一棵二元樹的根結點,要求我們找出哪一層擁有最大的水平元素和(Level-sum)?


題目的原文敘述


測試範例

Example 1:

Input: root = [1,7,0,7,-8,null,null]
Output: 2
Explanation:
Level 1 sum = 1.
Level 2 sum = 7 + 0 = 7.
Level 3 sum = 7 + -8 = -1.
So we return the level with the maximum sum which is level 2.

Example 2:

Input: root = [989,null,10250,98693,-89388,null,null,null,-32127]
Output: 2

約束條件

Constraints:

  • The number of nodes in the tree is in the range [1, 10^4].

節點總樹目介於1~10^4之間。

  • -10^5 <= Node.val <= 10^5

節點值都介於 負十萬 ~ 正十萬 之間。


演算法 BFS

解題線索就在題目裡了!

題目已經問: 哪一層有最大的水平元素和?

那很自然就會想到用擁有逐層由內往外探索的BFS廣度優先搜尋囉!

每一層各自累加元素總合,紀錄擁有最大值的那個level即可。


程式碼 BFS

class Solution:
def maxLevelSum(self, root: Optional[TreeNode]) -> int:

bfs_queue = deque([(root,1)])

max_sum, max_level = -math.inf, -1


# BFS traversal, level by level
while bfs_queue:

cur_sum = 0
for _ in range( len(bfs_queue) ):

node, level = bfs_queue.popleft()
cur_sum += node.val

if node.left: bfs_queue.append( (node.left, level+1) )
if node.right: bfs_queue.append( (node.right, level+1) )

# update the level with max level sum
if cur_sum > max_sum:
max_sum = cur_sum
max_level = level

return max_level

複雜度分析 討論可能的情況,並且分類。
使用DFS深度優先搜索

時間複雜度:

從根結點開始,探索整顆樹,每個結點最多拜訪一次,所需時間為O(n)。

Support the creator with action! Pay to unlock
本篇內容共 2346 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整You currently cannot view the following content, possibly because you are not logged in or do not have permission to view the room.
82會員
417Content count
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目敘述 題目會給定一顆二元樹的根結點Root node,和這棵樹中的任意兩個節點p, q。 請找出p, q 在這棵二元數裡面的最接近公共祖先節點是誰? 最接近的公共節點: 就是p, q兩個節點從下往上走,第一個交會的節點。 題目的原文敘述 測試範例 Example 1: Inpu
題目敘述 題目會給我們一顆二元樹的根節點。請問在這棵樹中,之字型走法的路徑長度最大值是多少? 如果無解,請返回 零。 註: 之字型走法就是有一段路徑,都是由連續的 左右左右...,或者 右左右左...所構成的路徑。(看下方的測試範例會更清楚題目的定義) 題目的原文敘述 測試範例 E
題目敘述 題目會給定一顆二元樹的根結點Root node,和指定的目標值targetSum。 問我們能不能從二元樹裡面找到一條從根結點到葉子結點的路徑,其路徑上的節點值總和恰好為targetSum? 可以的話,返回True。 無解的話,返回False。 題目的原文敘述 測試範例 E
題目敘述 題目會給定兩顆二元樹的根結點,要求我們判斷這兩顆二元樹是否為 葉子相似樹? 葉子相似樹的定義 兩顆二元樹,從左到右看的葉子結點的序列完全相同。 例如下圖中的這兩顆二元樹,從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。 題目的原文敘述 測試範例
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
題目敘述 題目會給我們一個輸入陣列arr,起始點固定在索引為0的位置, 終點固定在索引為n-1的位置。 假設當下所在的索引位置為i,那麼每次移動的時候,可以跳到i-1,i+1,或者其他和我有相同元素值的位置arr[j], where arr[j] = arr[i]。 例如: 假設當下在i=3
題目敘述 題目會給定一顆二元樹的根結點Root node,和這棵樹中的任意兩個節點p, q。 請找出p, q 在這棵二元數裡面的最接近公共祖先節點是誰? 最接近的公共節點: 就是p, q兩個節點從下往上走,第一個交會的節點。 題目的原文敘述 測試範例 Example 1: Inpu
題目敘述 題目會給我們一顆二元樹的根節點。請問在這棵樹中,之字型走法的路徑長度最大值是多少? 如果無解,請返回 零。 註: 之字型走法就是有一段路徑,都是由連續的 左右左右...,或者 右左右左...所構成的路徑。(看下方的測試範例會更清楚題目的定義) 題目的原文敘述 測試範例 E
題目敘述 題目會給定一顆二元樹的根結點Root node,和指定的目標值targetSum。 問我們能不能從二元樹裡面找到一條從根結點到葉子結點的路徑,其路徑上的節點值總和恰好為targetSum? 可以的話,返回True。 無解的話,返回False。 題目的原文敘述 測試範例 E
題目敘述 題目會給定兩顆二元樹的根結點,要求我們判斷這兩顆二元樹是否為 葉子相似樹? 葉子相似樹的定義 兩顆二元樹,從左到右看的葉子結點的序列完全相同。 例如下圖中的這兩顆二元樹,從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。 題目的原文敘述 測試範例
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
題目敘述 題目會給我們一個輸入陣列arr,起始點固定在索引為0的位置, 終點固定在索引為n-1的位置。 假設當下所在的索引位置為i,那麼每次移動的時候,可以跳到i-1,i+1,或者其他和我有相同元素值的位置arr[j], where arr[j] = arr[i]。 例如: 假設當下在i=3
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
120周守住可以買回我們2020獲利在32~45的1/3持股操作 之前叫#展旺 等確定站穩就開始規劃 也是在生技展前會積極操作之前沒獲利過的,就自己看生技的投資組合做配置 主要題材 抗生素有機會被炒作為缺藥的消息面 戰爭+中國爆發黴漿菌純粹就是想像力 就像2020疫情風暴 我們19
Thumbnail
昨天自己又測試了一下,感覺還是有優化的空間,又做了一些細微調整,目前我認為這個版本非常強悍了。
Thumbnail
有一次在家裡整理東西時,我的貓嚇到我了。因為當時就只有我一個人在家,所以非常的安靜。那你可能會想,貓咪走路不都沒有聲音的嗎?沒錯,正因為牠們走路都沒有聲音所以才更嚇人,因為當時並不曉得貓咪從自己後方走過來,完全沒有腳步聲的狀況下,只聽到了一個聲音,那就是呼吸聲。當下聽到急促的呼吸聲也沒有聯想到是自己
Thumbnail
「醫師啊,我從前體檢的血糖好像有一點超標,算不算糖尿病?需要再驗嗎?我平時都沒有不舒服,應該沒關係吧!」一到診間坐下,中年大叔就開口詢問:「我應該是健康的胖子,雖然這顆肚子消不下來,不過假日都有出門散步運動,體力還不錯。」語畢,滿意地拍拍自己的肚子。
Thumbnail
l 政府的教育目的到底是什麼? l 錯誤的目的、心態導致後面一連串的錯誤 l 我們可以如何跨出去?
Thumbnail
民事案件:不動產「借名登記」問題多!借名登記探究(一)-內部關係 不動產借名登記契約是否有效?是否違反民法上強制及禁止規定?如若有效,則不動產借名登記契約的性質為何?是消極信託還是類推適用民法的委任契約條文?
Thumbnail
童文薰律師在童溫層節目中整理出蔡英文一魚多吃的記錄 我其實蠻意外,在童文薰律師揭露蔡英文論文原稿一魚多吃之後,御用媒體會真的當回事發報導洗白的;因為這真的不是一般人會關心的事。但《芋傳媒》還真的引用了一個臉書粉專:《翻譯有要緊》的貼文煞有介事的這麼做了。
Thumbnail
本所許健鈴律師主持【歡迎搭乘,喜麗詩號】,從李佳庭社工的《你不伸手,他會在這裡躺多久?:一個年輕社工的掙扎與淚水》,談談幾個跟街友相關的法律問題。
Thumbnail
●2017印尼電影【愛的所有格 Posesif】有一種愛叫佔有 (普特莉馬利諾 阿迪帕提多肯 葛莉瑟達阿嘉莎 奇可庫尼阿萬) 這張海報跟在HamiVedio付費頻道【愛的所有格 Posesif】的預告片,是讓我驚豔的。
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
120周守住可以買回我們2020獲利在32~45的1/3持股操作 之前叫#展旺 等確定站穩就開始規劃 也是在生技展前會積極操作之前沒獲利過的,就自己看生技的投資組合做配置 主要題材 抗生素有機會被炒作為缺藥的消息面 戰爭+中國爆發黴漿菌純粹就是想像力 就像2020疫情風暴 我們19
Thumbnail
昨天自己又測試了一下,感覺還是有優化的空間,又做了一些細微調整,目前我認為這個版本非常強悍了。
Thumbnail
有一次在家裡整理東西時,我的貓嚇到我了。因為當時就只有我一個人在家,所以非常的安靜。那你可能會想,貓咪走路不都沒有聲音的嗎?沒錯,正因為牠們走路都沒有聲音所以才更嚇人,因為當時並不曉得貓咪從自己後方走過來,完全沒有腳步聲的狀況下,只聽到了一個聲音,那就是呼吸聲。當下聽到急促的呼吸聲也沒有聯想到是自己
Thumbnail
「醫師啊,我從前體檢的血糖好像有一點超標,算不算糖尿病?需要再驗嗎?我平時都沒有不舒服,應該沒關係吧!」一到診間坐下,中年大叔就開口詢問:「我應該是健康的胖子,雖然這顆肚子消不下來,不過假日都有出門散步運動,體力還不錯。」語畢,滿意地拍拍自己的肚子。
Thumbnail
l 政府的教育目的到底是什麼? l 錯誤的目的、心態導致後面一連串的錯誤 l 我們可以如何跨出去?
Thumbnail
民事案件:不動產「借名登記」問題多!借名登記探究(一)-內部關係 不動產借名登記契約是否有效?是否違反民法上強制及禁止規定?如若有效,則不動產借名登記契約的性質為何?是消極信託還是類推適用民法的委任契約條文?
Thumbnail
童文薰律師在童溫層節目中整理出蔡英文一魚多吃的記錄 我其實蠻意外,在童文薰律師揭露蔡英文論文原稿一魚多吃之後,御用媒體會真的當回事發報導洗白的;因為這真的不是一般人會關心的事。但《芋傳媒》還真的引用了一個臉書粉專:《翻譯有要緊》的貼文煞有介事的這麼做了。
Thumbnail
本所許健鈴律師主持【歡迎搭乘,喜麗詩號】,從李佳庭社工的《你不伸手,他會在這裡躺多久?:一個年輕社工的掙扎與淚水》,談談幾個跟街友相關的法律問題。
Thumbnail
●2017印尼電影【愛的所有格 Posesif】有一種愛叫佔有 (普特莉馬利諾 阿迪帕提多肯 葛莉瑟達阿嘉莎 奇可庫尼阿萬) 這張海報跟在HamiVedio付費頻道【愛的所有格 Posesif】的預告片,是讓我驚豔的。