// 超时
// class Solution {
// public:
// bool canJump(vector<int>& nums) {
// if (nums.size() == 0)
// return false;
// return check(0, nums);
// }
// bool check(int start, vector<int>& nums){
// if (start == nums.size() - 1)
// return true;
// if (nums[start] == 0)
// return false;
// for (int i = 1; i <= nums[start]; i++)
// if (check(start + i, nums))
// return true;
// return false;
// }
// };
static int x=[](){
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return 0;
}();
class Solution {
public:
bool canJump(vector<int>& nums){
int max_index = 0;
for(int i = 0; i < nums.size(); i++){
// i > max_index表示无法到达i的位置,失败
// max_index >= (n - 1),此时的距离已经足够到达终点,成功
if (max_index >= nums.size() - 1 || i > max_index)
break;
max_index = max(max_index, i + nums[i]);
}
return max_index >= nums.size() - 1;
}
};
LetCode 55. 跳跃游戏
猜你喜欢
转载自blog.csdn.net/wbb1997/article/details/81000555
今日推荐
周排行