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.

&nbsp;
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


&nbsp;
Constraints:


	n == citations.length
	1 &lt;= n &lt;= 5000
	0 &lt;= citations[i] &lt;= 1000


class Solution:
    def hIndex(self, citations: List[int]) -> int:
        num = sorted(citations)
        h = 0
        j = len(num)-1
        for i in range(len(num)):
            if i+1 <=num[i] and j-i+1>=num[i]:
                h =max(num[i],h)
            elif i+1 <= num[i] and j-i+1<num[i]:
                h = max(h,j-i+1)
            elif i+1 > num[i] and j-i+1 >=num[i]:
                h = max(h, num[i])
            
        return h
class Solution {
    public int hIndex(int[] citations) {
        int n = citations.length;
        Arrays.sort(citations);
        for(int i = 0; i < n; i++) {
            int hlen = (n-1) - i + 1;
            if(citations[i] >= hlen) {
                return hlen;
            }
        }
        return 0;
    }
}
class Solution {
public:
    int hIndex(vector<int>& citations) {
        sort(citations.begin(),citations.end(),greater<int>());
        int ans=0;
        for(int i=0;i<citations.size();i++){
            if(citations[i]>=i+1) ans=i+1;
        }
        return ans;
    }
};
var hIndex = function(citations) {
    citations.sort((a,b)=>b-a)
    let i=0
    while(citations[i]>i) i++

    return i
};
H-Index