#include <iostream>
#include <vector>
class Solution {
public:
bool canJump(std::vector<int>& nums) {
int goal = nums.size() - 1;
//std::cout << nums.size() - 2 << std::endl;
for (int i = nums.size() - 2; i >= 0; i-- )
{
if (i + nums[i] >= goal) {
//std::cout << "\n" << i << " " << goal << std::endl;
goal = i;
}
//std::cout << i << " " << goal << std::endl;
}
return goal == 0;
}
};
int main()
{
Solution sol;
std::vector<int> nums = {2, 3, 1, 1, 4};
std::cout << "{2, 3, 1, 1, 4} " << sol.canJump(nums) << std::endl;;
nums = {3, 2, 1, 0, 4};
std::cout << "{3, 2, 1, 0, 4} " << sol.canJump(nums) << std::endl;
return 0;
}