不是最好的解法,但是易懂。
题目:704. 二分查找
难度:简单
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-search
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
int search(vector<int>& nums, int target) {
int l = 0;
int r = nums.size()-1;
for (int i = 0,j; i <= nums.size()/2; i++){
j = (l + r)/2;
if (nums[j] == target){
return j;
}else if (nums[j] < target){
l = j+1;
}else {
r = j-1;
}
}
return -1;
}