704. 二分查找 - 力扣(LeetCode)https://leetcode.cn/problems/binary-search/description/二分查找的逻辑
在数组有序的情况下,将中间值与目标值进行对比
中间值>目标值,就到中间的左侧区域找
中间值<目标值,就到中间的右侧区域找
中间值=目标值,就返回,
如果范围缩小到没有区域(left>right),就结束返回失败
class Solution { public: int search(vector<int>& nums, int target) { int n=nums.size(); int left=0,right=n-1; while(left<=right) { int mid=(left+right)/2; if(nums[mid]<target) { left=mid+1; } else if(nums[mid]>target) { right=mid-1; } else { return mid; } } return -1; } };