原题链接 Note: 就是多了个时间复杂度的要求,上一题是从大到小去遍历H 那现在就改成用二分查找去定H就好了 代码如下: class Solution { public: int hIndex(vector<int>& c) { int l = 0, r = c.size(); reverse(c.begin(), c.end()); while(l < r){ int h = l + r + 1 >> 1; if(c[h - 1] >= h) l = h; else r = h - 1; } return l; } };