dp[i] = maxT(dp[i - 1], vec[i - 1]) - 1;走到当前i位置,还剩几步。我是这么理解。
#include
#include
using namespace std;
int maxT(int a, int b)
{
if (a > b)
{
return a;
}
return b;
}
bool JumpGame(vector &vec)
{
vector dp(vec.size(), 0);
for (int i = 1; i < vec.size(); i++)
{
dp[i] = maxT(dp[i - 1], vec[i - 1]) - 1;
if (dp[i] < 0)
{
return false;
}
}
return true;
}
int main()
{
vector vec{ 3,2,1,0,4 };
cout << JumpGame(vec) << endl;
system(“pause”);
return 0;
}