题目
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度
判断你是否能够到达最后一个下标。
输入:一行数组nums
输出:true/fasle
分析
分析参考链接 跳跃游戏
代码(完整代码C++)
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
bool canjump(vector<int>& nums)
{
for (int i = 0, j = 0; i < nums.size(); i++)
{
if (j < i) return false;
j = max(j, i + nums[i]);
if (j > nums.size() - 1) return true;
}
return true;
}
};
int main()
{
Solution sol;
vector<int> nums;
int i;
while (cin >> i)
{
nums.push_back(i);
if (cin.get() == '\n') break;
}
int result = sol.canjump(nums);
if (result == true)
cout << "true" << endl;
else
cout << "false" << endl;
return 0;
}