update 0198.打家劫舍: 更新 go 代码

This commit is contained in:
Yuhao Ju
2022-12-24 17:37:56 +08:00
committed by GitHub
parent 79f8976a99
commit 86a3d6e01c

View File

@ -52,7 +52,7 @@
如果偷第i房间那么dp[i] = dp[i - 2] + nums[i] 第i-1房一定是不考虑的找出 下标i-2包括i-2以内的房屋最多可以偷窃的金额为dp[i-2] 加上第i房间偷到的钱。
如果不偷第i房间那么dp[i] = dp[i - 1]即考虑i-1房**注意这里是考虑并不是一定要偷i-1房这是很多同学容易混淆的点**
如果不偷第i房间那么dp[i] = dp[i - 1],即考 虑i-1房**注意这里是考虑并不是一定要偷i-1房这是很多同学容易混淆的点**
然后dp[i]取最大值即dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
@ -154,29 +154,20 @@ class Solution:
Go
```Go
func rob(nums []int) int {
if len(nums)<1{
return 0
}
if len(nums)==1{
return nums[0]
}
if len(nums)==2{
return max(nums[0],nums[1])
}
dp :=make([]int,len(nums))
dp[0]=nums[0]
dp[1]=max(nums[0],nums[1])
for i:=2;i<len(nums);i++{
dp[i]=max(dp[i-2]+nums[i],dp[i-1])
}
return dp[len(dp)-1]
n := len(nums)
dp := make([]int, n+1) // dp[i]表示偷到第i家能够偷得的最大金额
dp[1] = nums[0]
for i := 2; i <= n; i++ {
dp[i] = max(dp[i-1], dp[i-2] + nums[i-1])
}
return dp[n]
}
func max(a, b int) int {
if a>b{
return a
}
return b
if a > b {
return a
}
return b
}
```