原题目:
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Your goal is to reach the last index in the minimum number of jumps.
For example:
Given array A = [2,3,1,1,4]
The minimum number of jumps to reach the last index is 2
. (Jump 1
step
from index 0 to 1, then 3
steps to the last index.)
Note:
You can assume that you can always reach the last index.
看到的某个大牛的解题思路,真的是非常厉害了。
先看我根据大牛的思路写的python实现。
class Solution:
def jump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
ret, last, curr = 0, 0, 0
for i in range(len(nums)):
if i>last:
last = curr
ret += 1
curr = max(curr, i+nums[i])
return ret
最重要的一个点就是不要进行不必要的计算。
参考博客:http://www.cnblogs.com/lichen782/p/leetcode_Jump_Game_II.html