C++ 二分法模板
C++ 二分法查找一个非降序序列中是否存在目标值
bool divide_search(vector<int> nums, int target) {
int l = 0;
int r = nums.size() - 1;
int mid;
while(l <= r){ //不能写作while(l < r) 因为序列中如果存在重复值 且正好在最后一次迭代的位置 没有=就会忽略掉 如果这里不写= 可以用下面的方式
mid = l + (r - l)/2; //不能写作(l + r)/2; 因为有时候相加会溢出
if(nums[mid] == target)
return true;
else if(nums[mid] < target)
l = mid+1;
else if(nums[mid] > target)
r = mid;
}
return false;
}
while里面不写=的写法:
bool divide_search(vector<int> nums, int target) {
int l = 0;
int r = nums.size() - 1;
int mid;
while(l < r){ //如果这里不写=
mid &#
十八万字C/C++、嵌入式软开常见面试题汇总 文章被收录于专栏
目前已整理十万字的C/C++、嵌入式常见面试题!!!!还在持续更新中!!! 这个专栏写完了,再po上自己亲手敲的笔试编程题整理。