import "fmt"
var a = []int{-1,0,3,5,9,12}
func search(nums []int, target int) int {
left, right := 0, len(nums)-1
//如果写的是middle := (left + right)/2容易造成溢出
//正确写法
middle := left + (right - left)/2
for left <= right {
if nums[middle] > target {
right = middle - 1
middle = left + (right - left)/2
} else if nums[middle] < target {
left = middle + 1
middle = left + (right - left)/2
} else {
return middle
}
}
return -1
}
func main() {
fmt.Println(search(a,9))
}
704. 二分查找
最新推荐文章于 2024-07-22 16:27:42 发布