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):
|
|