H-Index leetcode

本题目最重要的是要读懂题意

超过h的个数为h,超过h+1的个数小于h+1都为h

比如citations = [3, 0, 6, 1, 5] 不小于3的有3个,h=3;

比如citations = [1,1] 不小于1的有2个,但是不小于2的有0个,h=1;

AC代码:

class Solution {
public:
	int hIndex(vector<int>& citations) {
		int n=citations.size();int i=1,flag=0,j=0;
		sort(citations.begin(),citations.end());
		if(n==0||citations[n-1]==0) return 0;
		if(citations[0]>=citations.size())
		  return citations.size();
		while(i++<n){
		    while(citations[j]<i&&j<n)
		        j++;
		    if(n-j==i)
				break;
			if(n-j<i)
				{flag=1;break;}
		}
		if(flag)
		  i--;
		return i;
	}
};


猜你喜欢

转载自blog.csdn.net/maryhaocoolcool/article/details/51958340
今日推荐