374. Guess Number Higher or Lower
Guess Number Higher or Lower
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.
Example 1:
Input: n = 10, pick = 6 Output: 6
Example 2:
Input: n = 1, pick = 1 Output: 1
Example 3:
Input: n = 2, pick = 1 Output: 1
Constraints:
1 <= n <= 231 - 1
1 <= pick <= n
var guessNumber = function(n) {
return (function foo(start, end) {
let num = ((end + start)/2)
let g = guess(num);
if (g === -1) {
return foo(start, num-1)
} else if (g === 1) {
return foo(num+1, end)
} else {
return num;
}
})(1, n);
};
Approach) Recursion
var guessNumber = function(n) {
const helperRecursive = (low, high) => {
const mid = Math.floor((low+high)/2);
if(guess(mid) === 0) return mid;
if(guess(mid) === 1) return helperRecursive(mid+1,high);
if(guess(mid) === -1) return helperRecursive(low,mid-1);
}
return helperRecursive(0,n);
};
That’s all folks! In this post, we solved LeetCode problem 374. Guess Number Higher or Lower
I hope you have enjoyed this post. Feel free to share your thoughts on this.
You can find the complete source code on my GitHub repository. If you like what you learn. feel free to fork 🔪 and star ⭐ it.
In this blog, I have tried to collect & present the most important points to consider when improving Data structure and logic, feel free to add, edit, comment, or ask. For more information please reach me here
Happy coding!
Comments
Post a Comment