打王者背包在清背包的时候没有看见邀请排位的界面却提示要还剩多少秒要进房间鬼网

你是一个专业的小偷计划偷窃沿街的房屋。每间房内都藏有一定的现金影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在哃一晚上被小偷闯入系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组计算你 不触动警报装置的情况下 ,一夜之内能夠偷窃到的最高金额

dp[i] 表示前 i间房屋能偷窃到的最高总金额

  1. 偷窃第 k间房屋,那么就不能偷窃第 k-1间房屋偷窃总金额为前 k-2间房屋的最高总金額与第 k 间房屋的金额之和。
  2. 不偷窃第 k间房屋偷窃总金额为前 k-1间房屋的最高总金额。

考虑到每间房屋的最高总金额只和该房屋的前两间房屋的最高总金额相关因此可以使用滚动数组,在每个时刻只需要存储前两间房屋的最高总金额

你是一个专业的小偷计划偷窃沿街的房屋,每间房内都藏有一定的现金这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的同时,相邻的房屋裝有相互连通的防盗系统如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 號房屋(金额 = 2), 因为他们是相邻的 解释: 你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)

动态规划。和198题的区别在于收尾相连则转化为两个单排列问题:

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区这个地区只有一个入口,峩们称之为“根” 除了“根”之外,每栋房子有且只有一个“父“房子与之相连一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树” 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警

计算在不触动警报的情况下,小偷一晚能够盗取的最高金额

对每个节点来说,有两种状态偷和不偷,两者取max

  1. 偷当前节点:最大收益 = 当前节点的钱 + 不偷左儿子的钱 + 不偷右兒子的钱

  2. 不偷当前节点:最大收益 = 左儿子所能获得的最大收益 + 右儿子所能获得的最大收益

    其中,儿子所能获得的最大收益 = max(偷当前儿子所能獲得的最大收益 不偷当前儿子所能获得的最大收益)


 
 
 
 

我要回帖

更多关于 王者背包 的文章

 

随机推荐