題目:
給你一個整數數組?citations
?,其中?citations[i]
?表示研究者的第?i
?篇論文被引用的次數,citations
?已經按照?非降序排列?。計算并返回該研究者的 h?指數。
h 指數的定義:h 代表“高引用次數”(high citations),一名科研人員的?h
?指數是指他(她)的 (n
?篇論文中)至少?有?h
?篇論文分別被引用了至少?h
?次。
請你設計并實現對數時間復雜度的算法解決此問題。
思路:開區間二分答案 最大
代碼:
class Solution {public int hIndex(int[] citations) {int n = citations.length;int left = 0;int right = n + 1;while (left + 1 < right) {int mid = left + (right - left) / 2;if (citations[n - mid] >= mid) {left = mid;} else {right = mid;}}return left;}
}
性能: