leetcode H-Index II

题目链接

代码写的很烂。按下不表

public class Solution {
    public int hIndex(int[] citations) {
        if(citations.length==0)
        {
            return 0;
        }
        boolean allzearo=true;
        for (int i : citations) {
            if(i!=0)
            {
                allzearo=false;
            }
        }

        if(allzearo)
        {
            return 0;
        }

       int left=0;
        int n=citations.length;
        int right=n-1;
        int middle;
        int index=0;
        while(left<=right)
        {
            middle=(left+right)/2;
            if(citations[n-1-middle]>middle)
            {

                left=middle+1;
                index=middle;
            }
            else
            {
                right=middle-1;
            }

        }
        return index+1; 
    }
}

牛人的代码

int hIndex(int* citations, int citationsSize) {
    int lo = 0, hi = citationsSize, mid, index = 0;
    while (lo <= hi) {
        mid = lo + ((hi - lo) >> 1);
        if (citations[citationsSize - mid - 1] > mid) {
            lo = mid + 1;
            index = lo;
        } else {
            hi = mid - 1;
        }
    }
    return index;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值