Jump Game III LeetCode solution in Java
1class Solution {2public boolean canReach(int[] arr, int start) {3int n = arr.length;4boolean[] vis = new boolean[n];5Queue<Integer> q = new LinkedList<>();6q.add(start);7while (!q.isEmpty()) {8int size = q.size();9while (size-- > 0) {10int curr = q.poll();11if (vis[curr]) continue;12if (arr[curr] == 0) return true;13if (curr + arr[curr] < n) q.add(curr + arr[curr]);14if (curr - arr[curr] >= 0) q.add(curr - arr[curr]);15vis[curr] = true;16}17}18return false;19}20}