0374. Guess Number Higher or Lower

374. Guess Number Higher or Lower #

Problem #

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 3 possible results:

  • 1: The number I picked is lower than your guess (i.e. pick < num).
  • 1: The number I picked is higher than your guess (i.e. pick > num).
  • 0: The number I picked is equal to your guess (i.e. pick == num).

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

Example 4:

Input: n = 2, pick = 2
Output: 2

Constraints:

  • 1 <= n <= 231 - 1
  • 1 <= pick <= n

Problem Summary #

The rules of the guess number game are as follows:

  • In each round of the game, I will randomly choose a number from 1 to n. Please guess which number was chosen.
  • If you guess wrong, I will tell you whether the number you guessed is larger or smaller than the number I chose.

You can obtain the guess result by calling a predefined interface int guess(int num). There are 3 possible return values (-1, 1 or 0):

  • 1: The number I chose is smaller than the number you guessed pick < num
  • 1: The number I chose is larger than the number you guessed pick > num
  • 0: The number I chose is the same as the number you guessed. Congratulations! You guessed correctly! pick == num

Return the number I chose.

Solution Idea #

  • This is an easy problem, just like the higher-or-lower guessing game played in childhood. The idea is very simple: just use binary search. This problem is similar to Problem 278.

Code #

package leetcode

import "sort"

/**
 * Forward declaration of guess API.
 * @param  num   your guess
 * @return 	     -1 if num is lower than the guess number
 *			      1 if num is higher than the guess number
 *               otherwise return 0
 * func guess(num int) int;
 */

func guessNumber(n int) int {
	return sort.Search(n, func(x int) bool { return guess(x) <= 0 })
}

func guess(num int) int {
	return 0
}

Calendar Jun 25, 2026
Edit Edit this page
Total visits:   You are visitor No.
中文