@@ -0,0 +1,1503 @@
+/**%0A * Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute%0A * the researcher's h-index.%0A *%0A * According to the definition of h-index on Wikipedia: %22A scientist has index h if h of his/her N papers have at least%0A * h citations each, and the other N %E2%88%92 h papers have no more than h citations each.%22%0A *%0A * For example, given citations = %5B3, 0, 6, 1, 5%5D, which means the researcher has 5 papers in total and each of them had%0A * received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and%0A * the remaining two with no more than 3 citations each, his h-index is 3.%0A *%0A * Note: If there are several possible values for h, the maximum one is taken as the h-index.%0A *%0A * Hint:%0A *%0A * An easy approach is to sort the array first.%0A *%0A * What are the possible values of h-index?%0A *%0A * A faster approach is to use extra space.%0A *%0A * Tags: Hash Table, Sort%0A *%0A * Similar Problems: (M) H-Index II%0A */%0Apublic class HIndex %7B%0A%0A    public int hIndex(int%5B%5D citations) %7B%0A        int len = citations.length;%0A        int count = 0;%0A%0A        int%5B%5D arr = new int%5Blen + 1%5D;%0A        for (int i : citations) %7B%0A            if (i %3E= len) %7B%0A                arr%5Blen%5D++;%0A            %7D else %7B%0A                arr%5Bi%5D++;%0A            %7D%0A        %7D%0A%0A        for (int i = len; i %3E= 0; i--) %7B%0A            count += arr%5Bi%5D;%0A            if (count %3E= i) %7B%0A                return i;%0A            %7D%0A        %7D%0A        return 0;%0A    %7D%0A%7D%0A

add 274 H-Index