educative.io

Educative

Why cant we do the following for this question:

public static int search(ArrayReader reader, int key) {

int start = 0, end = key;
while (start <= end) {
  int mid = start + (end - start) / 2;
  if(reader.get(mid) == Integer.MAX_VALUE){
    mid = start + (mid -start)/2;
  }
  if (key < reader.get(mid)) {
    end = mid - 1;
  } else if (key > reader.get(mid)) {
    start = mid + 1;
  } else { // found the key
    return mid;

  }
}
return -1;

}