163 / 205
Abramyan · ArrayQiyin15 ball· ~12 daqiqa

Binary Search

O'sish tartibida saralangan N ta elementli arr massivi va butun son K berilgan. Binary search (ikkilik qidiruv) yordamida K ning indeksini (0 dan boshlab) qaytaring; K massivda bo'lmasa, -1 qaytaring.

example.go
func binarySearch(N int, K int, arr []int) int {
    // ...
}

Misollar

kod
Input: N=7, K=5, arr=[1,2,3,5,7,9,11]
Output: 3
kod
Input: N=5, K=10, arr=[2,5,8,10,15]
Output: 3
kod
Input: N=6, K=4, arr=[1,2,3,5,7,9]
Output: -1

Maslahatlar

  1. lo, hi := 0, N-1; lo <= hi bo'lguncha o'rtasini oling: mid := (lo + hi) / 2.
  2. arr[mid] < K bo'lsa lo = mid + 1, katta bo'lsa hi = mid - 1. Topilmasa -1.