Jump Game IIspa
Given an array of non-negative integers, you are initially positioned at the first index of the array.code
Each element in the array represents your maximum jump length at that position.blog
Your goal is to reach the last index in the minimum number of jumps.element
For example:
Given array A = [2,3,1,1,4]
it
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.)io
ret:目前爲止的jump數ast
curRch:從A[0]進行ret次jump以後達到的最大範圍class
curMax:從0~i這i+1個A元素中能達到的最大範圍im
當curRch < i,說明ret次jump已經不足以覆蓋當前第i個元素,所以須要增長一次jump,使之達到img
記錄的curMax。
class Solution { public: int jump(int A[], int n) { int ret = 0; int curMax = 0; int curRch = 0; for(int i = 0; i < n; i ++) { if(curRch < i) { ret ++; curRch = curMax; } curMax = max(curMax, A[i]+i); } return ret; } };