首页 > 其他 > 详细

二分查找 -- lower_bound 与 upper_bound

时间:2021-05-31 21:57:41      阅读:39      评论:0      收藏:0      [点我收藏+]

题目:

  判断数字x在有序数组出现的次数

  

 1 class Solution {
 2 public:
 3     int GetNumberOfK(vector<int> data ,int k) {
 4         if(!data.size()) return 0;
 5         cout << upper_bound(data, k) << endl;
 6         return upper_bound(data, k) - lower_bound(data, k);
 7     }
 8     int lower_bound(vector<int> data ,int k) {
 9         int l=0, r=data.size();
10         while(l<r){
11             int mid = (l+r)/2;
12             if(data[mid]<k)
13                 l = mid +1;
14             else
15                 r = mid;
16         }
17         return l;
18     }
19    int upper_bound(vector<int> data ,int k) {
20        int l=0, r=data.size();
21         while(l<r){
22             int mid = (l+r)/2;
23             if(data[mid]<=k)
24                 l = mid + 1;
25             else
26                 r = mid;
27         }
28         return l;
29    }
30 };

 

二分查找 -- lower_bound 与 upper_bound

原文:https://www.cnblogs.com/xidian-mao/p/14831861.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!