LintCode 116. 跳跃游戏
这是一道存在型动态规划的典型题目。这类题目写状态方程时,使用&&和||。
代码:
class Solution {
public:
/**
* @param A: A list of integers
* @return: A boolean
*/
bool canJump(vector<int> &A) {
if (0 == A.size()) {
return true;
}
//初始化
vector<int> f(A.size(), 0);
f[0] = 1;//起始点
//状态转移
for (int i = 1; i < f.size(); ++i) {
for (int j = 0; j < i; ++j) {
if (f[j] && i - j <= A[j]) {
f[i] = 1;
break;
}
}
}
return f[f.size() - 1];
}
};