码迷,mamicode.com
首页 > 其他好文 > 详细

1、线性DP 213. 打家劫舍 II

时间:2020-04-26 10:50:46      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:线性dp   ++   线性   ret   pre   https   highlight   tmp   ems   

https://leetcode-cn.com/problems/house-robber-ii/

 

//rob 0, not rob n-1 || not rob 0,not rob n-1 ==>rob(0,nums.length-2,nums)
//not rob 0,rob n-1 || not rob 0,not rob n-1;==>rob(1, nums.length-1, nums)
func rob(nums []int) int {
    n := len(nums)
    if n == 0{
        return 0
    }
    if n == 1{
        return nums[0]
    }
    return MAX(help(nums,0,n-1),help(nums,1,n))
}

//由题意抢了第一家则不能抢最后一家;抢了最后一家就不能抢第一家。
//抢了第一家的最大值就是在nums[:n-1)中抢的,抢了最后一家的最大值,就是在nums[1:]抢的
func help(nums []int,begin,end int) int{
    curMax,preMax := 0,0
    for i:=begin;i<end;i++{
        tmp := curMax
        curMax = MAX(curMax,preMax+nums[i])
        preMax =  tmp
    }
    return curMax
}

func MAX(i,j int) int{
    if i<j{
        return j
    }else{
        return i
    }
}

  

1、线性DP 213. 打家劫舍 II

标签:线性dp   ++   线性   ret   pre   https   highlight   tmp   ems   

原文地址:https://www.cnblogs.com/wsw-seu/p/12777532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!