LeetCode 275. H-Index II

与H-Index思路相同,因为输入已经sort了,所以原来的代码去掉了sort,但是会TLE,于是把citation.size()放入一个变量中,这样就不用每次都调用一遍函数了,AC但是82test cases 1038ms,之前H-Index 81test cases 4ms。

 1 class Solution {
 2 public:
 3     int hIndex(vector<int>& citations) {
 4         int size = citations.size();
 5         for(int i = 0; i < size; ++i){
 6             if(citations[i] >= size - i)
 7                 return size - i;
 8         }
 9         return 0;
10     }
11 };

 

看了别人的代码,发现要用二分法,如果中间的citations[i]符合,那么取左半边部分,继续查找符合条件的i(取左边是因为虽然左边citations[i]更小,size-i更大,符合的可能性会小一些,但是size-i更大,即h可能会更大);如果中间的citations[i]不符合,那么取右半边部分,继续查找。

关于每次取左取右时取mid、mid-1、mid+1还是有些不清楚,留坑。

posted @ 2016-03-20 15:46  co0oder  阅读(123)  评论(0编辑  收藏  举报