如何用打家劫舍的思維分析python二叉樹,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站制作、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。
在上次打劫完一條街道之后和一圈房屋后,小偷又發(fā)現(xiàn)了一個新的可行竊的地區(qū)。這個地區(qū)只有一個入口,我們稱之為“根”。 除了“根”之外,每棟房子有且只有一個“父“房子與之相連。一番偵察之后,聰明的小偷意識到“這個地方的所有房屋的排列類似于一棵二叉樹”。 如果兩個直接相連的房子在同一天晚上被打劫,房屋將自動報警。
計算在不觸動警報的情況下,小偷一晚能夠盜取的最高金額。
示例 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.
解題思路:
1,有兩種選擇
A,打劫根節(jié)點和孫子節(jié)點
B,打劫孩子節(jié)點
2,有5種邊界情況
A,根節(jié)點空
B,左右孩子非空
C,左右孩子均空
D,左孩子空
E,右孩子空
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func rob(root *TreeNode) int { val:=0 if root==nil{ return val } if root.Left!=nil && root.Right!=nil{ ll:=rob(root.Left.Left) lr:=rob(root.Left.Right) rl:=rob(root.Right.Left) rr:=rob(root.Right.Right) l:=rob(root.Left) r:=rob(root.Right) if root.Val+ll+lr+rr+rl>l+r{ return root.Val+ll+lr+rr+rl } return l+r } if root.Left!=nil{ ll:=rob(root.Left.Left) lr:=rob(root.Left.Right) l:=rob(root.Left) if root.Val+ll+lr>l{ return root.Val+ll+lr } return l } if root.Right!=nil{ rl:=rob(root.Right.Left) rr:=rob(root.Right.Right) r:=rob(root.Right) if root.Val+rl+rr>r{ return root.Val+rl+rr } return r } return root.Val}
看完上述內(nèi)容,你們掌握如何用打家劫舍的思維分析python二叉樹的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標題:如何用打家劫舍的思維分析python二叉樹
本文鏈接:http://jinyejixie.com/article34/pdcgpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、建站公司、電子商務、營銷型網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)