【LeetCode】275.H-Index II(Medium)解题报告
题目地址:https://leetcode.com/problems/h-index-ii/description/
题目描述:
Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm?
可以用前面H-Index的第一种方法,但是时间复杂度是O(n),想到二分法,可以将时间复杂度降到O(logn)
Solution:
//time : O(logn)
//space : O(1)
//二分法
class Solution {
public int hIndex(int[] citations) {
int len = citations.length;
int start = 0 , end = len - 1;
while(start <= end){
int mid = (end-start)/2+start;
if(citations[mid] == len - mid){
return len - mid;
}else if(citations[mid] < len -mid){
start = mid + 1;
}else{
end = mid - 1;
}
}
return len - start;
}
}
Date:2018年2月21日