275. H-Index II¶ Time: $O(\log n)$ Space: $O(1)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18class Solution { public: int hIndex(vector<int>& citations) { const int n = citations.size(); int l = 0; int r = n; while (l < r) { const int m = (l + r) / 2; if (citations[m] + m >= n) r = m; else l = m + 1; } return n - l; } }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17class Solution { public int hIndex(int[] citations) { final int n = citations.length; int l = 0; int r = n; while (l < r) { final int m = (l + r) / 2; if (citations[m] + m >= n) r = m; else l = m + 1; } return n - l; } } 1 2 3 4 5class Solution: def hIndex(self, citations: list[int]) -> int: n = len(citations) return n - bisect.bisect_left(range(n), n, key=lambda m: citations[m] + m)