274. H-Index && 275. H-Index II

  1. 274题目:https://leetcode.com/problems/h-index/
  2. 275题目:https://leetcode.com/problems/h-index-ii/  (275是274的简化版,已经排好序了)
  3. 思路
    1. 排序,h的值可能是【0,N】中的任意值,排序之后能清楚的了解当取h=【0,N】过程中是否满足条件
    2. 特判返回0的情况
    3. 从N-1遍历到1,先满足h条件的跳出。
    4. 特判返回N的情况,最大的优先
  4. 坑(思虑不周)
    1. 引用list的长度为0,为1的特判
    2. 引用list长度大于1的时候,各种情况都要考虑到!
  5. 代码
    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;
        }
    };

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值