二分查找
给定一个有序的整形数值和一个整形的数,在数组中查找给定的数,如果存在,返回在数组中的下标,否则,返回-1.
输入样例1:
input:[-1,0,1,2,3,4,5,6,7],target=4 output:5
输入样例2:
input:[-1,3,5,7,11,14],target=2 output:-1
class Solution {
public:
int search(vector<int>& nums, int target) {
int law=0, high=nums.size()-1;
while(law<=high){
int mid = (high-law)+law;
int num = nums[mid];
if(num==target){
return mid;
}else if(num<target){
law = mid+1;
}else{
high = mid-1;
}
}
return -1;
}
};
浙公网安备 33010602011771号