[leetcode] 275.H-Index II

来源:互联网 发布:淘宝新店铺怎么刷信誉 编辑:程序博客网 时间:2024/05/18 00:00

题目:
Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm?
题意:
这道题目是接274题而来,不过这次的引用次数是按照升序排列的。
思路:
可以使用二分查找的方法进行,扫描到middle元素的时候,如果middle元素大于等于middle到数组最后的元素的个数,那么令end = middle - 1,否则令begin = middle + 1。
以上。
代码如下:

class Solution {public:    int hIndex(vector<int>& citations) {        int size = citations.size();        if(size == 0)return 0;        int begin = 0, end = size;        int h = 0, middle = 0;        while(begin <= end) {            middle = begin + (end - begin)/2;            if(citations[middle] >= size - middle){                end = middle - 1;                h = size - middle;            }            else begin = middle + 1;        }        return h;    }};
0 0