1.针对有序数组
2.时间复杂度 O(logn)
3.写代码时需注意的细节
int left = 0, right = nums.size()-1;
while(left<=right){ //注意是<= , 不是<
int mid = left + (right-left)/2; //若直接(left+right)/2,有可能会int越界
if(nums[mid]==target) return mid;
else if(nums[mid]>target){ // 这里>还是>=,要根据是否有重复元素和题目要求来决定
right = mid-1;
}else{
left = mid + 1;
}
}
return left;