本文共 603 字,大约阅读时间需要 2 分钟。
题目描述 请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例1 输入 5,4,[1,2,4,4,5] 返回值 3 说明 输出位置从1开始计算
class Solution { public: /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型vector 有序数组 * @return int整型 */ int upper_bound_(int n, int v, vector & a) { // write code here if(n<=0||a[n-1]=v){ right=mid; mid=(right+left)/2; }else{ left=mid+1; mid=(left+right)/2; } } return right+1; }};
转载地址:http://ozevi.baihongyu.com/