题目:
解答:
动态规划
p[i]代表能否跳转到第i个位置
那么p[i] 由前面的决定
p[i] = ((i - j) <= A[j]) && p[j];
代码:
class Solution {
public:
bool canJump(int A[], int n) {
bool p[100000];
p[0] = true;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
p[i] = ((i - j) <= A[j]) && p[j];
if (p[i] == true)
break;
}
}
return p[n - 1];
}
};
另外该贴中有O(n)复杂度的算法
http://blog.csdn.net/xiaozhuaixifu/article/details/13628465