H-Index II

来源:互联网 发布:java主流工作流引擎 编辑:程序博客网 时间:2024/05/19 13:24

题目名称
H-Index II—这里写链接内容

描述
Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm?

分析
  这里给的是一个已经排序的数组,如果用之前在H-Index中的算法效率非常低,所以我想到用二分搜索来查找。

C++代码

class Solution {public:    int hIndex(vector<int>& citations) {        if(citations.size()==0)            return 0;        int left=0, len = citations.size(), right= len-1,  mid;        while(left<=right)        {            mid=(left+right)>>1;            if(citations[mid]== (len-mid)) return citations[mid];            else if(citations[mid] > (len-mid)) right = mid - 1;            else left = mid + 1;        }        return len - (right+1);    }};

总结
  弄懂二分搜索的含义,代码就很好理解,确定一个搜索范围,判断这个范围中间的数是否是符合要求的,如果不是,根据中间位置将搜索区间分为两半,继续查找可能的搜索域,直到找到我们要的数。

0 0
原创粉丝点击