文章链接 代码随想录 (programmercarl.com)
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
if(target < nums[0]||target > nums[nums.size() - 1]){
return -1;
}
while(left <= right){
int middle = (left + right)/2;
if(target < nums[middle]){
right = middle -1;
} else if(target > nums[middle]){
left = middle + 1;
} else{
return middle;
}
}
return -1;
}
};
思路: 第一次接触题目的时候比较直观的想法就是暴力搜索。因为之前没有接触过算法,所以不知道二分查找,看完视频后醍醐灌顶,二分法关键在于边界的处理。