1027-二分查找

冷不防 2022-11-20 08:24 145阅读 0赞

在这里插入图片描述
解题思路:
根据二分法的算法思想,需要使用左右两个下标寻找得到的值,在本题中,第一次二分就能得到最后的值,但是输出的index是3,因此需要从找到的位置的左指针处+1;

  1. class Solution {
  2. public:
  3. /**
  4. * 二分查找
  5. * @param n int整型 数组长度
  6. * @param v int整型 查找值
  7. * @param a int整型vector 有序数组
  8. * @return int整型
  9. */
  10. int upper_bound_(int n, int v, vector<int>& a) {
  11. // write code here
  12. int right = n-1, left = 0;
  13. while(left <= right)
  14. {
  15. int mid = (left + right) / 2;
  16. if(a[mid] > v)
  17. {
  18. right = mid - 1;
  19. }else if(a[mid] < v)
  20. {
  21. left = mid + 1;
  22. }else
  23. right = mid - 1;
  24. }
  25. return left + 1;
  26. }
  27. };

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读

    相关 二分查找

    二分查找可以说是在经典不过的查找算法了,比如JAVA的库函数里,就有相应的代码实例。如下写出两个版本的二分查找,非递归和递归的 非递归的 public int bi

    相关 查找——二分查找

    基本思想 二分查找是建立在有序顺序表基础上的!步骤如下: 1.      将表中间位置记录的关键字与给定K值进行比较,若两者相等,则查找成功。 2.