LintCode M 搶劫房屋

2021-08-07 13:45:02 字數 956 閱讀 2861

lintcode鏈結

在上次打劫完一條街道之後和一圈房屋之後,竊賊又發現了乙個新的可以打劫的地方,但這次所有的房子組成的區域比較奇怪,聰明的竊賊考察地形之後,發現這次的地形是一顆二叉樹。與前兩次偷竊相似的是每個房子都存放著特定金額的錢。你面臨的唯一約束條件是:相鄰的房子裝著相互聯絡的防盜系統,且當相鄰的兩個房子同一天被打劫時,該系統會自動報警。

算一算,如果今晚去打劫,你最多可以得到多少錢,當然在不觸動報警裝置的情況下。

您在真實的面試中是否遇到過這個題?

yes

樣例

3

/ \2 3

\ \

3 1

竊賊最多能偷竊的金錢數是 3 + 3 + 1 = 7.

3

/ \4 5

/ \ \

1 3 1

竊賊最多能偷竊的金錢數是 4 + 5 = 9.

/**

* definition of treenode:

* public class treenode

* }*/public class solution

//方法一

//後序遍歷

//返回res[0]表示搶劫該node後的最大值,res[1]表示不搶後的最大值

int rob2(treenode node)

//方法二

//ac=91%,超時

//因為if(robflag==0)時,會有重複計算

public int houserobber3_2(treenode root)

//robflag:1=搶劫node.parent, 0=不搶劫node.parent

int rob(treenode node, int robflag)else

}}

LintCode M 最近祖先

lincode鏈結 給定一棵二叉樹,找到兩個節點的最近公共父節點 lca 最近公共祖先是兩個節點的公共的祖先節點且具有最大深度。注意事項 假設給出的兩個節點都在樹中存在 您在真實的面試中是否遇到過這個題?yes 樣例對於下面這棵二叉樹 4 3 7 5 6lca 3,5 4 lca 5,6 7 lca...

入室搶劫1

小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。creat兩個一維陣列,記錄搶或...

LintCode M 揹包問題

以下 為網上找的 public class solution for int j 1 j m 1 j else for int i 1 i a.length i else return dp a.length 1 m 注意點 1.if a i j 若該物品所佔空間大於揹包總空間 無論怎樣騰揹包空間,...