LeetCode 337. 打家劫舍 III(记忆化+递归)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 337. 打家劫舍 III(记忆化+递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 1.1 相關題目:
- 2. 解題
- 2.1 遞歸
- 2.2 記憶化遞歸
1. 題目
在上次打劫完一條街道之后和一圈房屋后,小偷又發現了一個新的可行竊的地區。這個地區只有一個入口,我們稱之為“根”。 除了“根”之外,每棟房子有且只有一個“父“房子與之相連。一番偵察之后,聰明的小偷意識到“這個地方的所有房屋的排列類似于一棵二叉樹”。 如果兩個直接相連的房子在同一天晚上被打劫,房屋將自動報警。
計算在不觸動警報的情況下,小偷一晚能夠盜取的最高金額。
示例 1: 輸入: [3,2,3,null,3,null,1]3/ \2 3\ \ 3 1輸出: 7 解釋: 小偷一晚能夠盜取的最高金額 = 3 + 3 + 1 = 7.示例 2: 輸入: [3,4,5,1,3,null,1]3/ \4 5/ \ \ 1 3 1輸出: 9 解釋: 小偷一晚能夠盜取的最高金額 = 4 + 5 = 9.來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/house-robber-iii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
1.1 相關題目:
LeetCode 198. 打家劫舍(DP)
LeetCode 213. 打家劫舍 II(DP)
2. 解題
2.1 遞歸
- 父節點偷,或者不偷,相應的子節點不偷,或者偷,取max
暴力遞歸,最后一個測試例子超時。
2.2 記憶化遞歸
- 上面有很多重復子問題
- 利用map存儲結果(不能用哈希map,編譯報錯,好像是因為hash函數需要自己定義)
總結
以上是生活随笔為你收集整理的LeetCode 337. 打家劫舍 III(记忆化+递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于sklearn的LogisticRe
- 下一篇: LeetCode 4. 寻找两个有序数组