Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
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.
Example 1:
Input: citations = [3,0,6,1,5]
Output: 3
Explanation: [3,0,6,1,5] means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively.
Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, their h-index is 3.
Example 2:
Input: citations = [1,3,1]
Output: 1
Constraints:
n == citations.length
1 <= n <= 5000
0 <= citations[i] <= 1000
public int hIndex(int[] citations) {
int n = citations.length;
int[] buckets = new int[n+1];
for(int c : citations) {
if(c >= n) {
buckets[n]++;
} else {
buckets[c]++;
}
}
int count = 0;
for(int i = n; i >= 0; i--) {
count += buckets[i];
if(count >= i) {
return i;
}
}
return 0;
}
return sum(i < j for i, j in enumerate(sorted(citations, reverse=True)))
class Solution {
public:
int hIndex(vector<int>& c) {
// 3 support variables for us
int s = 0, e = c.size() - 1, avg;
// the base of every happy binary search ever: having a sorted dataset
sort(begin(c), end(c));
// some good old binary search here to find the maximum element meeting the conditions
while (s <= e) {
if (c[avg = (e + s) / 2] < c.size() - avg) s = avg + 1;
else e = avg - 1;
}
return c.size() - s;
}
};
In our experience, we suggest you solve this H-Index LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.
If you are stuck anywhere between any coding problem, just visit Queslers to get the H-Index LeetCode Solution
I hope this H-Index LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.
This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.
Keep Learning!
More Coding Solutions >>