274. H-Index

Description

Here

Pitfall

Bucket sort 很难捉摸到,多写写吧

有个小窍门,如果 citation[i] >= citations.length, 可以直接放到末尾那个。

Solution

public int hIndex(int[] citations) {
    final int n = citations.length;
    final int[] buckets = new int[citations.length + 1];
    for (int c : citations) {
      if (c >= n) buckets[n]++;
      else {
        buckets[c]++;
      }
    }

    int counts = 0;
    for (int h = buckets.length - 1; h >= 0; h--) {
      counts += buckets[h];
      if (counts >= h) {
        return h;
      }
    }

    throw new IllegalStateException("You shouldn't be here");
}

Reference

discussion

results matching ""

    No results matching ""