213. 打家劫舍 II
程序员文章站
2022-04-24 16:21:22
...
213. 打家劫舍 II
题目描述
解题思路
这个和打家劫舍一最大的差别是首位连起来了,思路就是把环形的分成两条单队列,要么偷第一个不偷最后,要么偷最后不偷第一个。
public int rob(int[] nums) {
int n = nums.length;
if(0 == n)
return 0;
if(1 == n)
return nums[0];
return Math.max(myRob(Arrays.copyOfRange(nums, 0, nums.length - 1)), myRob(Arrays.copyOfRange(nums, 1, nums.length)));
}
public int myRob(int[] nums) {
int n = nums.length;
int pre1 = 0,pre2 = 0,max = 0; //pre1位置上的前一个,pre2前两个
for (int i = 0; i < n; i++) {
max = Math.max(pre2+nums[i], pre1);
pre2 = pre1;
pre1 = max;
}
return pre1;
}
上一篇: 医生称之为高难度动作的动作
下一篇: 入门级别的大数据技术学习路径
推荐阅读
-
索尼Xperia 1 II/10 II欧洲售价公布:春季上市
-
#leetcode刷题之路45-跳跃游戏 II
-
硬盘各种接口IDE、SATA与SATA II的优缺点分析
-
全球最轻14英寸笔记本!华硕灵珑II开卖:9999元
-
金邦发布EVO X II系列内存:专为AMD三代锐龙优化
-
惠普暗影精灵II代Pro内部做工怎么样?惠普暗影精灵II代Pro拆机详细评测图解
-
巨兽重生:酷冷至尊发布Cosmos II 25周年版机箱:双飞翼
-
【leetcode 简单】 第五十五题 打家劫舍
-
【LeetCode】Two Sum & Two Sum II - Input array is sorted & Two Sum IV - Input is a BST
-
LeetCode454题四数相加 II