题解 | #打家劫舍(二)#

打家劫舍(二)

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
}
全部评论

相关推荐

头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务