public boolean canJump(int[] A) {

    outer: for (int i = 0 ; i < A.length - 1 ; i++) {
      if (A[i] == 0) {
        int j = 1;
        while (i - j >= 0) {
          if (A[i - j] > j) {
            continue outer;
          } else {
            j++;
          }
        }
        return false;
      }
    }

    return true;
  }