对一个有序序列查找某一个元素,返回其下标。
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
话不多说,上代码!
//[left,right]写法(左闭右闭)
int search(vector<int>&nums,int t)
{
int left=0,right=nums.size()-1;
while(left<=right)
{
int mid=left+(right-left)/2;
if(nums[mid]>t)
right=mid-1;
else if(nums[mid]<t)
left=mid+1
else
return mid;
}
return -1;
}
//[left,right)
int search(vector<int>&nums,int x)
{
int left=0,right=nums.size();
while(left<right)
{
mid=left+(right-left)/2;
if(nums[mid]>x)
left=mid;
else if(nums[mid]<x)
right=mid;
else
return mid;
}
return -1;
}