Problem
Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm?
Solution 二分查找
找满足条件的最左边缘的数,所以向左移动的时候要宽松一点。
class Solution {
public:
int hIndex(vector<int>& arr) {
const int N = arr.size();
int left = 0, right = N -1 ;
for( ; left <= right; ){
int mid = (left + right)/2;
int right_num = N - mid;
if( right_num <= arr[mid] ){
right = mid - 1;
}
else {
left = mid + 1;
}
}
return N - left;
}
};
本文针对H-Index问题,提出了一种当引用次数数组按升序排列时的优化算法。利用二分查找技术找到满足条件的最左侧边界值,通过调整左右指针的位置来提高搜索效率。
1137

被折叠的 条评论
为什么被折叠?



