July 5th 2023

Guess Number Higher or Lower — Typescript

Problem Description permalink

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I will tell you whether the number I picked is higher or lower than your guess.

You call a pre-defined API int guess(int num), which returns three possible results:

-1: Your guess is higher than the number I picked (i.e. num > pick). 1: Your guess is lower than the number I picked (i.e. num < pick). 0: your guess is equal to the number I picked (i.e. num == pick). Return the number that I picked.

Solution permalink

/**
* Forward declaration of guess API.
* @param {number} num your guess
* @return -1 if num is higher than the picked number
* 1 if num is lower than the picked number
* otherwise return 0
* var guess = function(num) {}
*/



function guessNumber(n: number): number {
if (n == 1){
return 1
}

let lowerBound = 0;
let upperBound = n;

let guessNum = lowerBound + Math.floor((upperBound - lowerBound) / 2)
let guessResult = guess(guessNum);

while (lowerBound >= 0 && upperBound <= n ){
if (guessResult === -1){
upperBound = guessNum - 1;
} else if (guessResult == 1){
lowerBound = guessNum + 1
} else {
return guessNum
}

guessNum = lowerBound + Math.floor((upperBound - lowerBound) / 2)
guessResult = guess(guessNum);
}

return 0
};

Discussion permalink