class Solution { public: bool canJump(vector<int>& nums) { int n=nums.size(); int start=0; int end=0; int maxend=0; while(end<n-1){ for(int i=start; i<=end; ++i){ if(i+nums[i]>=n-1) return true; maxend=max(maxend, i+nums[i]); } start=end+1; if(end==maxend) return false; end=maxend; } return true; } };