Katkat

Find shortest jumps in circular array

UberSoftware Engineer · Technical Screen

Last updated

This question evaluates graph-traversal and modular arithmetic skills by requiring modeling a circular array as a state graph and determining reachability and minimum-distance jumps under wrap-around constraints.

You are given a circular array arr of length n. From index i, you may jump exactly arr[i] steps either to the left or to the right (wrapping around the array), i.e. you can move to:

  • (i + arr[i]) mod n
  • (i - arr[i]) mod n

Given two indices start and target (0-based), return the minimum number of jumps needed to reach target starting from start. If it is impossible to reach target, return -1.

Clarifications:

  • Each jump uses the value at your current index to determine the exact jump distance.
  • The array is circular, so indices wrap around using modulo n.

Example:

  • arr = [2, 1, 2, 3], start = 0, target = 3
  • From 0 you can go to 2 (right) or 2 (left) → 2
  • From 2 you can go to 0 or 0 → cannot reach 3 → return -1.

Implement a function to compute this minimum jump count.