'''
Author: 365JHWZGo
Description: 45. 跳跃游戏 II
Date: 2021-10-20 09:35:48
FilePath: Python\test\demo8.py
LastEditTime: 2021-10-20 19:52:24
LastEditors: 365JHWZGo
'''
class Solution(object):
minStep = 1001
def jump(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 1:
return 0
if nums[0] == 0:
return 0
target = len(nums) - 1
start = 0
step = 0
res = []
def backtrack(self, nums, target, start, step, res):
if target == 0 and step < self.minStep:
self.minStep = step
print(res)
return
for i in range(nums[start], 0, -1):
if target - i < 0:
i = target
target -= i
if start == len(nums)-1:
break
start += i
step += 1
if step >= self.minStep:
break
res.append([i, nums[start]])
backtrack(self, nums, target, start, step, res)
step -= 1
start -= i
target += i
res.pop()
return
backtrack(self, nums, target, start, step, res)
return self.minStep
回溯算法超时【o(╥﹏╥)o】
看了思路结果是需要用贪心算法,ε=(´ο`*)))唉