[LeetCode] 275. H-Index II H指数 II
Posted 轻风舞动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 275. H-Index II H指数 II相关的知识,希望对你有一定的参考价值。
Follow up for H-Index: What if the citations
array is sorted in ascending order? Could you optimize your algorithm?
Hint:
- Expected runtime complexity is in O(log n) and the input is sorted.
274. H-Index H指数 的拓展。输入的数组是有序的,让我们优化算法。提示(现在题目中没有提示了):O(logn)。
显然使用二分法。
Python:
class Solution(object): def hIndex(self, citations): """ :type citations: List[int] :rtype: int """ n = len(citations) left, right = 0, n - 1 while left <= right: mid = (left + right) / 2 if citations[mid] >= n - mid: right = mid - 1 else: left = mid + 1 return n - left
C++:
class Solution { public: int hIndex(vector<int>& citations) { int len = citations.size(), left = 0, right = len - 1; while (left <= right) { int mid = 0.5 * (left + right); if (citations[mid] == len - mid) return len - mid; else if (citations[mid] > len - mid) right = mid - 1; else left = mid + 1; } return len - left; } };
类似题目:
All LeetCode Questions List 题目汇总
以上是关于[LeetCode] 275. H-Index II H指数 II的主要内容,如果未能解决你的问题,请参考以下文章