Array Hopper IV
public class Solution {
public int minJump(int[] array, int index) {
Queue<Integer> queue = new LinkedList<>();
Set<Integer> hashset = new HashSet<>();
queue.offer(index);
hashset.add(index);
int count = 0;
while (!queue.isEmpty()) {
int size = queue.size();
for (int j = 0; j < size; j++) {
int cur = queue.poll();
if (cur == array.length - 1) {
return count;
}
for (int i = 1; i <= array[cur]; i++) {
if (cur + i < array.length && !hashset.contains(cur + i)) {
queue.offer(cur + i);
hashset.add(cur + i);
}
if (cur - i >= 0 && !hashset.contains(cur - i)) {
queue.offer(cur - i);
hashset.add(cur - i);
}
}
}
count++;
}
return -1;
}
}Last updated