class Solution {
public:
/*
* @param A: A list of integers
* @return: A boolean
*/
bool canJump(vector<int> &A) {
// write your code here
int size = A.size();
if (size == 1) {
return true;
}
int curMaxStep = A[0];
for (int i = 1; i < size; i++) {
if (i > curMaxStep) {
return false;
}
curMaxStep = max(i + A[i], curMaxStep);
if (curMaxStep >= size - 1) {
return true;
}
}
return curMaxStep >= size - 1;
}
};