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.
Determine if you are able to reach the last index.
For example:
A =[2,3,1,1,4]
, return true
. A = [3,2,1,0,4]
, return false
.
思路:贪心算法,遍历数组,记录当前能够到达的最右边。
代码:
bool canJump(vector & A){ int n = A.size(); int max = 0;//当前能到达的最远位置 for(int i = 0; i <= max && max < n-1; i++) max = max>i + A[i]?max:i + A[i]; return max >= n-1;}贪心算法,挺经典的,经常看看。