# H-Index II LeetCode Solution

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

## 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 SolutionC++

``````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 SolutionJava

``````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 SolutionJavaScript

``````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 SolutionPython

``````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)```
Scroll to Top