类别:BFS
难度:medium
题目描述
代码实现
#include <iostream>
#include <vector>
using namespace std;
bool canJump(vector<int>& nums) {
int n = nums.size();
if (n < 2) return true;
int level = 0, i = 0, curMax = 0, nextMax = 0;
while (curMax - i + 1 > 0) {
level++;
for (; i <= curMax; ++i) {
nextMax = max(nextMax, nums[i] + i);
if (nextMax >= n - 1) return true;
}
curMax = nextMax;
}
return false;
}
int main() {
int n;
cin >> n;
int num;
vector<int> data;
for (int i = 0; i < n; ++i) {
cin >> num;
data.push_back(num);
}
cout << canJump(data) << endl;
return 0;
}