Each element in the array represents your maximum jump length at that position.
Determine if you are able to reach the last index.
Example 1:
Input: [2,3,1,1,4] Output: true Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.
Example 2:
Input: [3,2,1,0,4] Output: false Explanation: You will always arrive at index 3 no matter what. Its maximum jump length is 0, which makes it impossible to reach the last index.
code
#include <iostream> #include <vector> using namespace std; class Solution { public: bool canJump(vector<int>& nums) { if(nums.empty()) return false; int i=0; for(int reach=0;i<=reach&&i<nums.size();++i) { if(reach<i) return false; reach=max(i+nums.at(i),reach); } return i==nums.size(); } }; int main() { vector<int> arr{2,3,1,0,4}; Solution s; cout<<s.canJump(arr)<<endl; return 0; }
other