题1:704. 二分查找
class Solution {
public:
int search(vector<int>& nums, int target) {
int st = 0;
int ed = nums.size() - 1;
while(st<=ed){
int mid = (st+ed)/2;
if(nums[mid] == target){
return mid;
}else if(nums[mid] > target){
ed = mid - 1;
}else{
st = mid + 1;
}
}
return -1;
}
};
class Solution {
public:
int firstBadVersion(int n) {
int st = 0;
int ed = n - 1;
int mid = (st+ed)/2;
while(st<=ed){
if(isBadVersion(mid)){
break;
}else{
st = mid + 1;
}
mid = st + (ed-st)/2;
}
while(isBadVersion(mid)){
mid--;
}
return mid + 1;
}
};
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int st = 0;
int ed = nums.size() - 1;
int mid =(st+ed)/2;
while(st<=ed){
if(nums[mid]==target){
return mid;
}else if(nums[mid]<target){
st = mid + 1;
}else{
ed = mid - 1;
}
mid = st + (ed-st)/2;
}
return st;
}
};