274. H-Index
Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index.
According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than h citations each."
For example, given
citations = [3, 0, 6, 1, 5]
, which means the researcher has5
papers in total and each of them had received3, 0, 6, 1, 5
citations respectively. Since the researcher has3
papers with at least3
citations each and the remaining two with no more than3
citations each, his h-index is3
.Note: If there are several possible values for
h
, the maximum one is taken as the h-index.
代码(python实现)
class Solution(object): def hIndex(self, citations): """ :type citations: List[int] :rtype: int """ hIndex = 0 if citations is None or len(citations) == 0: return 0 if len(citations) == 1: if citations[0] == 0: return 0 else: return 1 citations.sort() q = len(citations) - 1 count = 1 if citations[0] >= len(citations): return len(citations) while(q >= 0): if citations[q] < count or citations[q] == 0: break #从右往左扫描,如果count在citations[q - 1]和citations[q]之间,则hIndex = count if count >= citations[q - 1] and count <= citations[q]: hIndex = count count += 1 q -= 1 return hIndex