update 0045.跳跃游戏II:修改文本,删除 go 的dp解法

This commit is contained in:
Yuhao Ju
2022-12-15 21:41:45 +08:00
committed by GitHub
parent 0c7285481e
commit bd1d8e007a

View File

@ -36,7 +36,7 @@
贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最小步数。 贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。整体最优:一步尽可能多走,从而达到最小步数。
思路虽然是这样,但在写代码的时候还不能真的能跳多远远,那样就不知道下一步最远能跳到哪里了。 思路虽然是这样,但在写代码的时候还不能真的能跳多远就跳多远,那样就不知道下一步最远能跳到哪里了。
**所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!** **所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!**
@ -234,31 +234,6 @@ class Solution:
### Go ### Go
```Go
func jump(nums []int) int {
dp := make([]int, len(nums))
dp[0] = 0//初始第一格跳跃数一定为0
for i := 1; i < len(nums); i++ {
dp[i] = i
for j := 0; j < i; j++ {
if nums[j] + j >= i {//nums[j]为起点,j为往右跳的覆盖范围,这行表示从j能跳到i
dp[i] = min(dp[j] + 1, dp[i])//更新最小能到i的跳跃次数
}
}
}
return dp[len(nums)-1]
}
func min(a, b int) int {
if a < b {
return a
} else {
return b
}
}
```
```go ```go
// 贪心版本一 // 贪心版本一
func jump(nums []int) int { func jump(nums []int) int {
@ -320,8 +295,6 @@ func max(a, b int) int {
} }
``` ```
### Javascript ### Javascript
```Javascript ```Javascript