Golang:
思路:二分思路往往是想起来很简单,但实现起来很容易出错,主要原因其实就是在于边界问题,这题也是一样
代码如下:
func hIndex(citations []int) int {
low,high,res:=0,len(citations)-1,0
for low<=high{
mid:=low+(high-low)/2
if citations[len(citations)-mid-1]>=mid+1{
if mid+1>res{
res=mid+1
}
low=mid+1
}else{
high=mid-1
}
}
return res
}
有疑问加站长微信联系(非本文作者)