12345678910111213141516171819 |
- func hIndex(citations []int) int {
- n := len(citations)
- index := make([]int, n+1)
- for _, c := range citations {
- if n <= c {
- index[n]++
- } else {
- index[c]++
- }
- }
- for i := n; 1 <= i; i-- {
- if i <= index[i] {
- return i
- }
- index[i-1] += index[i] // So smart! The citations of h is the accumulation of index[h]~index[n]
- }
- return 0
- }
|