Here, We see H-Index II LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.
List of all LeetCode Solution
H-Index II LeetCode Solution
Table of Contents
Problem Statement
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 ascending order, return the researcher’s h-index.
According to the definition of h-index on Wikipedia: The h-index is defined as the maximum value of h
such that the given researcher has published at least h
papers that have each been cited at least h
times.
You must write an algorithm that runs in logarithmic time.
Example 1:
Input: citations = [0,1,3,5,6]
Output: 3
Explanation: [0,1,3,5,6] means the researcher has 5 papers in total and each of them had received 0, 1, 3, 5, 6 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,2,100]
Output: 2
H-Index II LeetCode Solution C++
class Solution {
public:
int hIndex(vector<int>& citations)
{
int n = citations.size();
int min = 0, max = n - 1;
int mid;
while (min <= max)
{
mid = (min + max) / 2;
if (citations[mid] < n - mid)
{
min = mid + 1;
}
else
{
max = mid - 1;
}
}
return n - min;
}
};
Code language: PHP (php)
H-Index II Solution Java
class Solution {
public int hIndex(int[] citations) {
int len = citations.length;
int lo = 0, hi = len - 1;
while (lo <= hi) {
int med = (hi + lo) / 2;
if (citations[med] == len - med) {
return len - med;
} else if (citations[med] < len - med) {
lo = med + 1;
} else {
hi = med - 1;
}
}
return len - lo;
}
}
Code language: PHP (php)
H-Index II Solution JavaScript
var hIndex = function(citations) {
let start = 0, end = citations.length-1
while(start <= end){
let mid = Math.floor((start+end)/2)
if(mid+1 <= citations[citations.length-mid-1]){
start = mid + 1
continue
}
end=mid-1
}
return start
};
Code language: JavaScript (javascript)
H-Index II Solution Python
class Solution(object):
def hIndex(self, citations):
n = len(citations)
l, r = 0, n-1
while l <= r:
mid = (l+r)/2
if citations[mid] >= n-mid:
r = mid - 1
else:
l = mid + 1
return n-l
Code language: HTML, XML (xml)