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