45. 跳跃游戏 II 动态规划 从后往前考虑。 时间复杂度:O(N^2)空间复杂度:O(1) 12345678910111213141516func jump(nums []int) int { count := 0 r := len(nums) - 1 for r > 0 { for i := 0; i < r; i++ { if nums[i] >= r - i { r = i count++ break } } } return count} 从前往后考虑。 时间复杂度:O(N)空间复杂度:O(1) 123456789101112131415161718192021222324func jump(nums []int) int { count := 0 n := len(nums) maxPosition := 0 end := 0 // r := len(nums) - 1 for i := 0; i < n - 1; i++ { maxPosition = max(maxPosition, i + nums[i]) if i == end { end = maxPosition count++ } } return count}func max(x, y int) int { if x > y { return x } return y} 算法 > leetcode 45. 跳跃游戏 II https://blog.jerrylee.me/2021/09/d8e4866d5698.html 作者 Jerry Lee 发布于 2021年9月20日 许可协议 433.最小基因变化 上一篇 450.删除二叉搜索树中的节点 下一篇