一:x的平方根
在C++库中有sqrt函数可以使用,自己实现
int mySqrt(int x) {
if (x <= 1) return x;
int left = 0, right = x;
while (left < right)
{
int mid = left + (right - left) / 2;
if (x / mid >= mid)
left = mid + 1;
else
right = mid;
}
return right - 1;
}
二:
int search(vector<int>& nums, int target)
{
int pos=-1;
int left=0;
int right=nums.size()-1;
while(left<=right)
{
int mid=left+(right-left)/2;
if(nums[mid]==target)
{
pos=mid;
break;
}
else if(nums[mid]>=nums[left])
{
if(nums[mid]>target&&nums[left]<=target)
{
right=mid-1;
}
else left=mid+1;
}
else
{
if(nums[mid]<target&&nums[right]>=target)
{
left=mid+1;
}
else right=mid-1;
}
}
return pos;
}