213. House Robber II

网友投稿 789 2022-10-09

213. House Robber II

213. House Robber II

Note: This is an extension of House Robber.

After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this place are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, the security system for these houses remain the same as for those in the previous street.

Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

思路: 第一个element 和最后一个element不能同时出现,则分两次call House Robber I case 1: 不包括最后一个element case 2: 不包括第一个element 两者的最大值即为全局最大值

class Solution { public int rob(int[] nums) { if(nums == null || nums.length == 0) return 0; if(nums.length == 1) return nums[0]; if(nums.length == 2) return Math.max(nums[0], nums[1]); return Math.max(robsub(nums, 0, nums.length - 2), robsub(nums, 1, nums.length - 1)); } private int robsub(int[] nums, int s, int e) { int n = e - s + 1; int[] d = new int[n]; d[0] = nums[s]; d[1] = Math.max(nums[s], nums[s + 1]); for(int i = 2; i < n; i++) { d[i] = Math.max(d[i - 2] + nums[s + i], d[i - 1]); } return d[n - 1]; } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot]logback日志框架配置教程
下一篇:ASP.NET Boilerplate一个ASP.NET 样板应用程序框架(asp.net web开发框架)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~