网站建设招标网,崂山区城乡建设局网站,html5做的网站代码,网上政务服务平台入口213. 打家劫舍213.
提示
中等
1.5K
相关企业
你是一个专业的小偷#xff0c;计划偷窃沿街的房屋#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 #xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时#xff0c;相邻的房屋装有相互连…213. 打家劫舍213.
提示
中等
1.5K
相关企业
你是一个专业的小偷计划偷窃沿街的房屋每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 这意味着第一个房屋和最后一个房屋是紧挨着的。同时相邻的房屋装有相互连通的防盗系统如果两间相邻的房屋在同一晚上被小偷闯入系统会自动报警 。
给定一个代表每个房屋存放金额的非负整数数组计算你 在不触动警报装置的情况下 今晚能够偷窃到的最高金额。 示例 1
输入nums [2,3,2]
输出3
解释你不能先偷窃 1 号房屋金额 2然后偷窃 3 号房屋金额 2, 因为他们是相邻的。示例 2
输入nums [1,2,3,1]
输出4
解释你可以先偷窃 1 号房屋金额 1然后偷窃 3 号房屋金额 3。偷窃到的最高金额 1 3 4 。
示例 3
输入nums [1,2,3]
输出3提示
1 nums.length 1000 nums[i] 1000
class Solution {public int rob(int[] nums) {if(nums.length 1){return nums[0];}int[] dp new int[101];int len nums.length;dp[0] 0;dp[1] nums[0];//[0,len-2] 不包括最后一个房子 for(int i 2;ilen;i){dp[i] Math.max(dp[i-1],dp[i-2]nums[i-1]);}int max dp[len-1];dp[1] 0;dp[2] nums[1];//[1,len-1] 不包括第一个房子 for(int i 3;ilen;i){dp[i] Math.max(dp[i-1],dp[i-2]nums[i-1]);}return Math.max(max,dp[len]);}
}