class Solution {
public:
bool canJump(vector<int>& nums) {
//肯定可以用回溯来做
//
if (nums.size() == 1) return true; //如果只有一个数据,就直接true
int maxStep = 0 + nums[0]; //初始化最长能到位置
for (int i = 0; i < nums.size() - 1; ++i) {
if (maxStep >= nums.size() - 1) return true; //如果步数已经超过最后,就保证我们能够到最后
if (nums[i] == 0 && maxStep <= i) return false; //如果我遇见零了,而且我最长步数还不能跨越,就返回false
if (nums[i] != 0) maxStep = max(i + nums[i],maxStep); //更新能够跨越到的最远的index
}
return true;
}
};
Leetcode 55 跳跃游戏
最新推荐文章于 2024-04-27 22:08:34 发布