这是最后一篇查找类型的算法,标题也是这么简单粗暴,力扣链接
给定一个
n
个元素有序的(升序)整型数组nums
和一个目标值target
,写一个函数搜索nums
中的target
,如果目标值存在返回下标,否则返回-1
。
示例 1:输入:nums = [-1,0,3,5,9,12],
target = 9
输出: 4 解释: 9 出现在 nums 中并且下标为 4
既然标题是二分查找,这里直接上二分查找找喽:
func search(nums []int, target int) int {
left, right := 0, len(nums)-1
for left <= right {
mid := (left + right) / 2
if nums[mid] == target {
return mid
} else if nums[mid] > target {
right = mid - 1
}else {
left = mid + 1
}
}
return -1
}