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)