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.
public class Solution {
public int hIndex(int[] citations) {
int left = 0, right = citations.length - 1;
while (left <= right) {
int mid = (left + right) >> 1;
if (citations[mid] == citations.length - mid) {
return citations[mid];
} else if (citations[mid] < citations.length - mid) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return citations.length - right - 1;
}
}