
dp[i] 表示为,到达当前 i 索引时,所需要的最小步数
dp耗时很长,贪心不会
class Solution(object):
def jump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
n = len(nums)
dp = [n] * n
dp[0] = 0
for i in range(n):
for j in range(i):
if i <= nums[j] + j:
dp[i] = min(dp[i], dp[j] + 1)
return dp[n - 1]
if __name__ == '__main__':
nums = [1, 2, 1, 1, 1]
Sol = Solution()
res = Solution.jump(Sol, nums)
print(res)
这段代码展示了一个Python类Solution,实现了解决跳跃游戏的动态规划方法。给定一个整数数组nums,每个元素表示可以跳跃的最大长度,目标是找到达到数组最后一个索引所需的最小步数。通过初始化dp数组并迭代更新,最终返回dp[n-1]作为结果。
294

被折叠的 条评论
为什么被折叠?



