标签:pos position last find pre sort fir style return
二分法总结:满足某个条件的first position of。。。。 和 last position of。。。。用二分法
先从二分法开始写:
4点:
1.start+1<end; 退出条件两个相邻了就退出
2.mid=start+(end-start)/2;//防止溢出
3.A[mid] == > <
4.最后判断相邻的两个元素和target的关系
找第一个出现target的位置
if(A.size() == 0){
return -1;
}
int start=0;int end=A.size()-1;
while(start+1<end){
int mid=start+(end-start)/2;
if(target == A[mid]){
end = mid;//find first appear
}
else if(target < A[mid]){
end = mid;
}else if(target > A[mid]){
start=mid;
}
}
if(target == A[start]){
return start;
}
else if(target == A[end]){
return end;
}
return -1;
Search for a range
找first pos last pos
当target == A[mid]
start 和 end怎么挪
1 2 4 4 5
找左边界
在(target == A[mid]){
end=mid;
}
找右边界
(target == A[mid]){
start=mid;
}
第一个大于等于target的下标
在第四点会发生变化~
iftargete)
行递增 列递增
可以删掉一行或者一列!!!
面试代码基础(二)二分法binary Search Sorted Array
标签:pos position last find pre sort fir style return
原文地址:https://www.cnblogs.com/ldphoebe/p/5940682.html