LeetCode 275: H-Index II

来源:互联网 发布:vb视频大学生自学网 编辑:程序博客网 时间:2024/06/11 09:12

275. H-Index II

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

Hint:
Expected runtime complexity is in O(log n) and the input is sorted.

思路

第275题H-Index中,先对数组进行降序排序,再逐一判断citations[i]是否大于i;这道题给出的数组本就是升序排序的,那判断条件就变为citations[i]是否大于size-1-i。此外,应题要求,使用二分查找降低时间复杂度。

代码

[C++]

class Solution {public:    int hIndex(vector<int>& citations) {        if (citations.size() < 1)            return 0;        int size = citations.size();        int start = 0;        int end = size - 1;        int h = 0;        while (start <= end) {            int mid = (start + end) / 2;            if (citations[mid] > size - 1 - mid) {                h = size - mid;                end = mid - 1;            }            else                start = mid + 1;        }        return h;    }};
0 0
原创粉丝点击