37 / 205
LeetCode · EasyOson10 ball· ~10 daqiqa

Guess Number Higher or Lower

Biz u yoki bu sonni taxmin qilish o'yinini o'ynamoqdamiz. Men 1 dan n gacha bo'lgan oraliqdan bitta son tanladim.

Sizga bir guess(num) API mavjud bo'lib u quyidagicha javob qaytaradi:

  • -1: Siz taxmin qilgan son pick dan katta.
  • 1: Siz taxmin qilgan son pick dan kichik.
  • 0: Siz taxmin qilgan son pick ga teng. Siz topdingiz!

Test tizimida biz pick qiymatini sizga parameter sifatida uzatamiz. Siz num == pick bo'lgan num ni topishingiz kerak.

example.go
func solve(n int, pick int) int {
    // ...
}

Misollar

kod
Input: n = 10, pick = 6
Output: 6
kod
Input: n = 1, pick = 1
Output: 1
kod
Input: n = 2, pick = 2
Output: 2

Maslahatlar

  1. Chiziqli qidirish o'rniga, guess funksiyasining javobidan foydalanib binary search qo'llang.
  2. lo=1, hi=n bilan boshlab mid'ni tekshiring; guess(mid) natijaga qarab (-1 bo'lsa hi=mid-1, 1 bo'lsa lo=mid+1, 0 bo'lsa topildi) oraliqni qisqartirib boring.