# 题目: 704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums
和一个目标值 target
,写一个函数搜索 nums
中的 target
,如果目标值存在返回下标,否则返回 -1。
# 题解: 二分查找
原数组已经是升序序列, 所以直接二分, target 与 nums[i] 做比较
- nums[i] > target, 说明target可能存在i的左侧
- nums[i] < target, 说明target可能存在i的右侧
- nums[i] = target, 则 i 为 target
# 代码
var search = function(nums, target) {
let left=0,right=nums.length-1;
while(left<=right){
let mid =left+ Math.floor((right-left)/2)
if(nums[mid] === target) return mid
if(nums[mid]>target) right = mid -1
else left = mid+1
}
return -1
};