本篇内容主要讲解“Java怎么解决打家劫舍的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么解决打家劫舍的问题”吧!
网站设计制作、做网站服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。成都创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
如果要打劫第n家,就必然不能打劫第n-1家,所以打劫第n家得到的钱一共是第n家的钱加上前n-2家获得的最多的钱,即:f(n-2)+nums(n),如果不打劫第n家,获得的最大收益就是f(n-1),两者我们要去较大的那个,所以动态转移方程是:
f(n)=max(nums[n]+f(n-2),f(n-1))
package mainimport "fmt"func max(a,b int)int{ if a>b { return a } return b}func rob(nums []int) int { if len(nums)==0 { return 0 } if len(nums)==1 { return nums[0] } dp := make([]int,len(nums)) dp[0] = nums[0] dp[1] = max(nums[0],nums[1]) maxVal := dp[1] for i:=2;i到此,相信大家对“Java怎么解决打家劫舍的问题”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
标题名称:Java怎么解决打家劫舍的问题
文章URL:http://cxhlcq.com/article/ghghps.html