Pergunta de entrevista da empresa Arista Networks

Find the missing number in an array of adjacent, increasing numbers in logarithmic time.

Resposta da entrevista

Sigiloso

10 de nov. de 2014

int find_missing_num(int a[], int n) { int low = 0, high = n-1, mid; while (low <= high) { mid = (low+high)/2; int low_diff_indices = mid - low; int low_diff_value = a[mid] - a[low]; if ( high - low == 1) { return (a[low] + 1); } else if (low_diff_value - low_diff_indices == 1) { high = mid - 1; } else { low = mid+1; } } }

1