This is a follow up on H-Index. What if the citations array is sorted in ascending order? Could you optimize your algorithm?
Problem
Given an array of integers citations where citations[i] is the number of citations a researcher received for their ith paper and citations is sorted in an ascending order, return compute the researcher’s h-index.
According to the definition of h-index on Wikipedia: A scientist has an index h if h of their n papers have at least h citations each, and the other n − h papers have no more than h citations each.
If there are several possible values for h, the maximum one is taken as the h-index.
You must write an algorithm that runs in logarithmic time.
Examples
Example 1:
| |
Example 2:
| |
Solution
Method 1 - Binary Search
This is very similar to H-Index, only thing is we don’t have to sort the citations array anymore. We can use binary search Method 3 from H-Index, where time complexity will be O(log N):
| |