- 274题目:https://leetcode.com/problems/h-index/
- 275题目:https://leetcode.com/problems/h-index-ii/ (275是274的简化版,已经排好序了)
- 思路
- 排序,h的值可能是【0,N】中的任意值,排序之后能清楚的了解当取h=【0,N】过程中是否满足条件
- 特判返回0的情况
- 从N-1遍历到1,先满足h条件的跳出。
- 特判返回N的情况,最大的优先
- 坑(思虑不周)
- 引用list的长度为0,为1的特判
- 引用list长度大于1的时候,各种情况都要考虑到!
- 代码
class Solution { public: int hIndex(vector<int>& citations) { if (citations.size() == 0) return 0; if (citations.size() == 1 && citations[0] >= 1) return 1; if (citations.size() == 1 && citations[0] == 0) return 0; sort(citations.begin(), citations.end()); int h, res_h=0; if (citations[citations.size()-1] <= citations.size()) res_h = 0; for (int i = 1; i < citations.size(); i++) { h = citations.size() - i; if (citations[i] >= h && citations[i-1] <= h) { res_h = h; break; } } if (citations[0] >= citations.size()) res_h = citations.size(); return res_h; } };
07-29