题解 | #打家劫舍(二)#
打家劫舍(二)
http://www.nowcoder.com/practice/a5c127769dd74a63ada7bff37d9c5815
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
func rob( nums []int ) int {
n := len(nums)
if n == 1 {return nums[0]}
return max(dp(nums, 0, n-2), dp(nums, 1, n-1))
}
func dp(nums []int, start , end int) int {
dp1, dp2, dpi := 0, 0, 0
for i := end; i >= start; i-- {
dpi = max(dp1, nums[i]+ dp2)
dp2 = dp1
dp1 = dpi
}
return dpi
}
func max(a, b int) int {
if a < b {return b}
return a
}