[LeetCode] H-Index II

来源:互联网 发布:gap淘宝旗舰店可靠吗 编辑:程序博客网 时间:2024/05/17 01:29

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

Hint:

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

解题思路

二分法。

实现代码

C++:

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

Java:

// Runtime: 12 mspublic class Solution {    public int hIndex(int[] citations) {        int len = citations.length;        int left = 0;        int right = len - 1;        while (left <= right) {            int mid = left + (right - left) / 2;            if (citations[mid] >= len - mid) {                right = mid - 1;            }            else {                left = mid + 1;            }        }        return len - left;    }}
0 0