diff --git a/c/374-guess-number-higher-or-lower.c b/c/374-guess-number-higher-or-lower.c new file mode 100644 index 000000000..7ac0b9c11 --- /dev/null +++ b/c/374-guess-number-higher-or-lower.c @@ -0,0 +1,21 @@ +/* +I pick a number from 1 to n. You have to guess which number I picked. + +Space: O(1) +Time: O(log(n)) +*/ + +long guess_bis(long min, long max){ + long m = (max+min)/2; + int tmp = guess(m); + if (tmp==0) + return m; + else if (tmp<0) + return guess_bis(min,m-1); + else + return guess_bis(m+1,max); +} + +long guessNumber(long n){ + return guess_bis(0,n); +}