There is an array 'JUMP' of size 'N' which is 1-indexed and you are currently at index 1. Your goal is to reach index 'N' (end).
When you are at index 'i', you can jump a maximum length of 'JUMP[i]' which means you can make a jump of size 1 to JUMP[i]. Return true if you can reach the end otherwise false.
N = 5
JUMP = [1,2,3,4,5]
ANSWER:- The answer should be YES as you can jump from 1st index to 2nd index, from 2nd index to 4th index, and from 4th index to 5th index.
The first line contains an integer ‘N’ denoting the length of the array 'JUMP'.
The second line contains ‘N’ integers which denote values of 'JUMP'.
Output Format :
"YES" is printed if the function returns true, otherwise "NO".
Note :
You are not required to print anything, it has already been taken care of. Just implement the function.
4
4 4 4 4
YES
It is YES because you can directly jump from the 1st position to the 4th position.
3
1 0 2
NO
It is NO because it is impossible to reach the 3rd position.
1 <= N <= 10^5
1 <= JUMP[i] <= N
Time Limit = 1 sec
Check which positions you can reach starting from 0.
Use Dynamic Programming to find out the position you can reach. If you can reach the last position return True, else return False. A position i is reachable if DP[j] is 1 and j+JUMP[j] is greater than equal to i. Instead of updating the full range that can be reached from position i, mark the starting and ending points that can be reached from the ith position.
Algorithm:-
O(N), where N is the number of points.
We are iterating through the points only once, so the time complexity is O(N).
O(N), where N is the number of points.
We are using an array that can grow up to size N, so the space complexity is O(N).