其他分享
首页 > 其他分享> > LeetCode55. 跳跃游戏

LeetCode55. 跳跃游戏

作者:互联网

题目

分析

其实这题比较坑,不去关心每次究竟跳几步,而是看每次最多能跳到哪里,最后的最高跳范围包含结果就成功。贪心每一次最大范围。

需要注意的是,之前跳的范围不含本层,那么就为false。

代码

自己

 1 class Solution {
 2 public:
 3     bool canJump(vector<int>& nums) {
 4         if(nums.size() == 1) return true;
 5         int l = 0;//l表示实际跳跃的最大范围
 6         for(int i = 0;i < nums.size();i++){
 7             if(l < i) return false;
 8             l = max(l,i+nums[i]);
 9         }
10         return true;
11     }
12 };

Carl大佬

 1 class Solution {
 2 public:
 3     bool canJump(vector<int>& nums) {
 4         if(nums.size() == 1) return true;
 5         int l = 0;
 6         for(int i = 0;i <= l;i++){
 7             l = max(i+nums[i],l); //当前可跳的最大范围
 8             if(l >= nums.size()-1){
 9                 return true;
10             }
11         }
12         return false;
13     }
14 };

 

标签:LeetCode55,return,游戏,nums,int,跳跃,false,true,size
来源: https://www.cnblogs.com/fresh-coder/p/14374139.html