题目描述
请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。
2020-10-132020-10-13
import java.util.*; public class Solution { /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型一维数组 有序数组 * @return int整型 */ public int upper_bound_ (int n, int v, int[] a) { // write code here int low=0; int higth=a.length; if(a[a.length-1]<v){ return higth+1; } while(low<higth){ int mid=low+(higth-low)/2; if(v>a[mid]){ low=mid+1; }else{ higth=mid; } } return low+1; } }