H-Index - Medium - L
Published:
Question
- https://leetcode.com/problems/h-index/
Given an array of integers citations where citations[i] is the number of citations a researcher received for their ith paper, 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.
Approach
- Binary Search
- Simple Sum
Solution
class Solution {
public:
int hIndex(vector<int>& citations) {
int x = citations.size();
int s[x + 1];
for (int i = 0 ; i <=x ; i++) s[i] = 0;
for (int i = 0; i < x; i++) s[min(x, citations[i])]++;
int sum = 0;
for (int i = x; i >= 0; i--)
{
sum += s[i];
if (sum >= i)
return i;
}
return 0;
}
};