
详细思路
对于每一步,都更新最远能否到达的下标,如果已经来到了最远并且此时为0,false
精确定义
maxLeft最远能否到达的下标
i需要判断
class Solution { public: bool canJump(vector<int>& nums) { int n=nums.size(); if(n==0)return true; int maxLeft=nums[0]; if(n==1&&nums[0]==0)return true; if(n>1&&nums[0]==0)return false; for(int i=1;i<nums.size()-1;i++){ if(i==maxLeft&&nums[i]==0)return false; maxLeft=max(maxLeft,i+nums[i]); } return true; } };
浙公网安备 33010602011771号