88 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Sqrt(x)

Sizga manfiy bo'lmagan butun son x kiritiladi. x ning kvadrat ildizini butun songa yaxlitlab qaytaring (kasr qismi tashlab yuboriladi).

Izoh: sqrt kabi tayyor darajaga ko'taruvchi yoki ildiz chiqaruvchi funksiyalardan foydalanish tavsiya etilmaydi.

example.go
func solve(x int) int {
    // ...
}

Misollar

kod
Input: x = 4
Output: 2
Tushuntirish: 4 ning kvadrat ildizi 2 ga teng.
kod
Input: x = 8
Output: 2
kod
Input: x = 16
Output: 4

Maslahatlar

  1. sqrt funksiyasidan foydalanish mumkin bo'lmagani uchun javobni 1 dan x gacha bo'lgan oraliqda binary search bilan qidirishni o'ylang.
  2. lo=1, hi=x/2 oralig'ida binary search yurgizing: o'rtadagi qiymat mid <= x/mid shartini qanoatlantirsa, uni nomzod javob sifatida saqlab qidiruvni yuqoriga davom ettiring, aks holda pastga qarab torayting — oxirida saqlangan eng katta mos nomzod javob bo'ladi.