【二分查找】275. H 指数 II

这篇具有很好参考价值的文章主要介绍了【二分查找】275. H 指数 II。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

📍前言

🕺作者: 迷茫的启明星

学习路线
C语言从0到1
C++初阶
数据结构从0到1

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!!

持续更新中~

【二分查找】275. H 指数 II

在另一篇博客里讲过二分法的模板:
《二分法的模板讲解》

问题描述

给定一个整数数组 citations,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。数组已按照升序排列。要求计算并返回该研究者的 h 指数。

h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 n 篇论文中,总共有 h 篇论文分别被引用了至少 h 次。

要求设计并实现对数时间复杂度的算法解决此问题。

示例

示例 1:

输入:citations = [0,1,3,5,6]

输出:3

解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6 次。

由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3 。

解题思路

本题要求求解 h 指数,可以使用二分查找算法。首先,我们需要找到一个合适的中间点 mid。然后,我们判断 citations[mid] 是否满足 citations[mid] >= citations.size() - mid。如果满足,说明在 mid 左侧可能有更多的论文满足 h 指数的定义,因此将 l 设置为 mid;否则,将 r 设置为 mid

二分查找的复杂度为 O(log n),因此整个算法的复杂度也是 O(log n)。

代码实现

以下是基于二分查找的解决方案,时间复杂度为 O(log n)。

class Solution {
public:
    int hIndex(vector<int>& citations) {
        int l=-1,r=citations.size();
        int mid;
        while(r-l>1)
        {
            mid=(r+l)>>1;
            if(citations[mid]>=(citations.size()-mid))
                r=mid;
            else
                l=mid;
        }
        return citations.size()-r;
    }
};

总结

本文描述了一种基于二分查找的解决方案,用于求解给定整数数组 citations 的 h 指数。这种解决方案的时间复杂度为 O(log n),能够有效地解决问题。文章来源地址https://www.toymoban.com/news/detail-598337.html

到了这里,关于【二分查找】275. H 指数 II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法刷题营【Day1】:: 704.二分查找:二分法详谈与相关刷题

    本内容是笔者结合《代码随想录》总结所得,记录学习过程,分享知识! 目录: 1. 开篇例题:704. 二分查找 2. 题解参考(模板写法) - - 2.1 方法一:左闭右闭写法 - - 2.2 方法二:左闭右开写法 3. 模板解释:左闭右闭 - - 3.1 区间划定 - - 3.2 left 、right 移动问题 - - 3.3 循环条件

    2024年02月04日
    浏览(46)
  • leetcode分类刷题:二分查找(Binary Search)(四、基于值域的数组/矩阵类型)

    基于值域的二分法与基于定义域的题型不同,它的目标是从一“ 特殊排序序列 ”中确定“第k个元素值”,而不像基于定义域的题型是从排序序列中找小于等于特定target值的第一个索引;同时,针对“特殊排序序列”,往往需要 嵌套使用双指针 法进行操作,进一步增加了对

    2024年02月11日
    浏览(61)
  • 【算法刷题】—7.12二分查找应用,数组处理

    🧛‍♂️ 个人主页: 杯咖啡 💡进步是今天的活动,明天的保证! ✨目前正在学习:SSM框架,算法刷题 🙌 牛客网 ,刷算法过面试的神级网站, 用牛客你也牛。 👉免费注册和我一起学习刷题👈 🐳希望大家多多支持🥰一起进步呀! 😎Love is the one thing we’are capable of perc

    2023年04月08日
    浏览(69)
  • 算法刷题Day1 二分查找+移除元素

    代码随想录-数组-1.数组理论基础 数组是存放在 连续内存空间 上的 相同类型 数据的 集合 优点:常数时间复杂度访问元素 缺点: 在删除或者增添元素的时候,就难免要移动其他元素的地址 ,时间复杂度为O(n) 代码随想录-数组-2.二分查找 前提条件 二分查找前提条件: 数组

    2024年02月10日
    浏览(54)
  • 【算法】在二维不单调的矩阵上二分查找——力扣1901. 寻找峰值 II

    1901. 寻找峰值 II 给定一个从0开始编号的m x n矩阵 mat ,其中任意两个相邻格子的值都不相同。峰值是指那些严格大于其相邻格子(上、下、左、右)的元素。需要找出任意一个峰值 mat[i][j] 并返回其位置 [i, j] 。 示例 1: 示例 2: 步骤一:列转行 首先,将矩阵的列转换为行,表示为

    2024年02月03日
    浏览(50)
  • leetcode - 275. H-Index II

    Given an array of integers citations where citations[i] is the number of citations a researcher received for their ith paper and citations is sorted in ascending order, return the researcher’s h-index. According to the definition of h-index on Wikipedia: The h-index is defined as the maximum value of h such that the given researcher has published at least

    2024年02月09日
    浏览(35)
  • 看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题704、35、34数组二分查找) 2023.4.17

    本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可,撰写本文章主要目的在于记录自己学习体会并分享给大家,全篇并不仅仅是复制粘贴,更多的是加入了自己的思考,希望读完此篇文章能真正帮助到您!!! 数组是由n(n=1)个 相同类型 的数据元素

    2024年02月05日
    浏览(50)
  • 【算法|二分查找No.4】leetcode 852. 山脉数组的峰顶索引

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助 🍓希望我们一起努力、成长,共同进步。

    2024年02月05日
    浏览(71)
  • java数据结构与算法刷题-----LeetCode667. 优美的排列 II

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 题目要求我们返回一个数组长度为n的数组,必须含有1~n的所有数,并且从左到右,相邻的元素依次相减,它们的差,必

    2024年01月25日
    浏览(52)
  • java数据结构与算法刷题-----LeetCode240. 搜索二维矩阵 II

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 法一:把整个数组遍历一遍,时间复杂度O(m*n) 法二:每一行用二分搜索,那么时间复杂度就是O(m * l o g 2 n log_2{n} l o g

    2024年01月22日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包