付費限定
舉一反三 用樹型DP思想來解 House Robbery III_Leetcode #337
更新於 發佈於 閱讀時間約 7 分鐘
以行動支持創作者!付費即可解鎖
本篇內容共 2856 字、3
則留言,僅發佈於DP動態規劃 特訓班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
留言分享你的想法!
小松鼠的演算法樂園
96會員
427內容數
由有業界實戰經驗的演算法工程師,
手把手教你建立解題的框架,
一步步寫出高效、清晰易懂的解題答案。
著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。
深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。
在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
小松鼠的演算法樂園的其他內容
2024/09/26
Leetcode 729. My Calendar I
給定一個行事曆的class定義和行程安排的介面interface。
請完成下列function
1.建構子MyCalendar() 初始化MyCalendar物件
2.boolean book(int start, int end) 插入新行程
2024/09/26
Leetcode 729. My Calendar I
給定一個行事曆的class定義和行程安排的介面interface。
請完成下列function
1.建構子MyCalendar() 初始化MyCalendar物件
2.boolean book(int start, int end) 插入新行程
2024/09/10
Insert Greatest Common Divisors in Linked List
題目給定一個鏈結串列,
請在兩兩節點之間加入一個新節點,新節點的值為兩者之間的最大公因數。
最後返回新串列的head node作為答案。
2024/09/10
Insert Greatest Common Divisors in Linked List
題目給定一個鏈結串列,
請在兩兩節點之間加入一個新節點,新節點的值為兩者之間的最大公因數。
最後返回新串列的head node作為答案。
2024/09/09
2326. Spiral Matrix IV
題目給定一個Linked list和對應的矩陣高度m、寬度n。
請依照順時針的拜訪順序,
從左上角出發,依照次序把Linked List的內容填到矩陣裡。
如果有剩餘不足的空位,就填補-1。
最後將填補好的矩陣返回作為答案。
2024/09/09
2326. Spiral Matrix IV
題目給定一個Linked list和對應的矩陣高度m、寬度n。
請依照順時針的拜訪順序,
從左上角出發,依照次序把Linked List的內容填到矩陣裡。
如果有剩餘不足的空位,就填補-1。
最後將填補好的矩陣返回作為答案。
你可能也想看
























2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。

2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。

嗨!歡迎來到 vocus
vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。
vocus 平台匯聚了

嗨!歡迎來到 vocus
vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。
vocus 平台匯聚了
題目敘述 House Robber III
題目會給我們一個二元樹,
二元樹裡的每個節點分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是上下相鄰樓層的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。
請問盜賊可以得手的最大金額是多少?
題目敘述 House Robber III
題目會給我們一個二元樹,
二元樹裡的每個節點分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是上下相鄰樓層的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。
請問盜賊可以得手的最大金額是多少?
題目會給我們一個nums陣列,分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是相鄰的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。第一棟和最後一棟也被視為相鄰。
請問怎麼選擇哪幾棟房屋下手,可以
題目會給我們一個nums陣列,分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是相鄰的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。第一棟和最後一棟也被視為相鄰。
請問怎麼選擇哪幾棟房屋下手,可以
題目敘述
題目給定一棵二元樹,整棵樹剛好有n個節點 和 總共n枚金幣。
每個節點的值代表該節點初始擁有金幣的數量。
每回合可以給周圍的節點一枚金幣,請問最少需要幾回合才能讓所有節點恰好擁有一枚金幣?
原本的英文題目敘述
題目敘述
題目給定一棵二元樹,整棵樹剛好有n個節點 和 總共n枚金幣。
每個節點的值代表該節點初始擁有金幣的數量。
每回合可以給周圍的節點一枚金幣,請問最少需要幾回合才能讓所有節點恰好擁有一枚金幣?
原本的英文題目敘述
題目給定一個布林代數的二元樹,要求我們計算最後的結果。
葉子節點都是真假值
非葉子節點都是布林運算子
題目給定一個布林代數的二元樹,要求我們計算最後的結果。
葉子節點都是真假值
非葉子節點都是布林運算子
這篇文章,會帶著大家複習以前學過的區間DP框架,
並且以區間DP的概念為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。
基本的區間DP框架(限制條件: 相鄰的兩項不允許同時選擇)
在House Robbery這題中,我們學會了一種基本的區間DP框架。
這篇文章,會帶著大家複習以前學過的區間DP框架,
並且以區間DP的概念為核心,
貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。
基本的區間DP框架(限制條件: 相鄰的兩項不允許同時選擇)
在House Robbery這題中,我們學會了一種基本的區間DP框架。
題目敘述
題目會給定一棵二元樹的根結點,
要求我們計算滿足局部路徑節點和=targetSum的數目有多少?
註:
局部路徑節點和
=由節點a往下走到某個節點b,這個區間內的節點值總和
題目的原文敘述
測試範例
Example 1:
Input: root = [10,5,-3,3
題目敘述
題目會給定一棵二元樹的根結點,
要求我們計算滿足局部路徑節點和=targetSum的數目有多少?
註:
局部路徑節點和
=由節點a往下走到某個節點b,這個區間內的節點值總和
題目的原文敘述
測試範例
Example 1:
Input: root = [10,5,-3,3
題目敘述
題目會給定一棵二元樹的根結點,要求我們找出這棵二元樹最後一層最左邊的值。
題目的原文敘述
測試範例
Example 1:
Input: root = [2,1,3]
Output: 1
Example 2:
Input: root = [1,2,3,4,null,5,6
題目敘述
題目會給定一棵二元樹的根結點,要求我們找出這棵二元樹最後一層最左邊的值。
題目的原文敘述
測試範例
Example 1:
Input: root = [2,1,3]
Output: 1
Example 2:
Input: root = [1,2,3,4,null,5,6
題目敘述
題目會給我們一棵二元樹的根結點,要求我們找出哪一層擁有最大的水平元素和(Level-sum)?
題目的原文敘述
測試範例
Example 1:
Input: root = [1,7,0,7,-8,null,null]
Output: 2
Explanation:
Level
題目敘述
題目會給我們一棵二元樹的根結點,要求我們找出哪一層擁有最大的水平元素和(Level-sum)?
題目的原文敘述
測試範例
Example 1:
Input: root = [1,7,0,7,-8,null,null]
Output: 2
Explanation:
Level
題目敘述
題目會給我們一顆二元樹的根結點,請我們列出每一層最右邊的節點值,以陣列的形式返回答案。
題目的原文敘述
測試範例
Example 1:
Input: root = [1,2,3,null,5,null,4]
Output: [1,3,4]
每一層最右邊的節點值分別是1, 3,
題目敘述
題目會給我們一顆二元樹的根結點,請我們列出每一層最右邊的節點值,以陣列的形式返回答案。
題目的原文敘述
測試範例
Example 1:
Input: root = [1,2,3,null,5,null,4]
Output: [1,3,4]
每一層最右邊的節點值分別是1, 3,
這題也算是Leetcode 上經典的DP考題之一,也是很好的DP邏輯思考練習題。
題目敘述
題目會給我們一個nums陣列,分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是相鄰的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。
請問怎麼選
這題也算是Leetcode 上經典的DP考題之一,也是很好的DP邏輯思考練習題。
題目敘述
題目會給我們一個nums陣列,分別代表每棟房屋的價值,也就是房屋內有的現金數量。
題目敘述給的情境是假想盜賊要偷東西,限制是相鄰的兩棟房屋不能一起偷,只能選擇其中一棟,否則就會觸發警報器。
請問怎麼選