LeetCode-Python-275. H指数 II
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。
h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)至多有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)"
示例:
输入:citations = [0,1,3,5,6]
输出: 3 解释: 给定数组表示研究者总共有5
篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6
次。由于研究者有3
篇论文每篇至少被引用了3
次,其余两篇论文每篇被引用不多于3
次,所以她的 h 指数是3
。
说明:
如果 h 有多有种可能的值 ,h 指数是其中最大的那个。
进阶:
- 这是 H指数 的延伸题目,本题中的
citations
数组是保证有序的。 - 你可以优化你的算法到对数时间复杂度吗?
思路:
二分查找。
根据题意:找的是某个点,满足这个点的值 > = 它和它右侧的点个数之和cnt情况下,cnt就是当前的h指数
如果已经有h指数了,就可以试着往左找,因为越左cnt越大,h指数也越大,所以左侧可能存在更大的h值,
如果目前还没有h指数,就只能试着缩小cnt,往右找,
此题缩小搜索范围的思路就可以用二分查找来实现。
class Solution(object):def hIndex(self, citations):""":type citations: List[int]:rtype: int"""l = len(citations)lo, hi = 0, l - 1res = 0while(lo <= hi):mid = lo + (hi - lo) // 2cnt = l - mid #包括mid自身右边还有的元素个数if citations[mid] >= cnt: res = cnthi = mid -1else:lo = mid + 1return res
LeetCode-Python-275. H指数 II相关推荐
- LeetCode 981. 基于时间的键值存储 / 274. H 指数 / 275. H 指数 II
981. 基于时间的键值存储 2021.7.10 每日一题 题目描述 创建一个基于时间的键值存储类 TimeMap,它支持下面两个操作:1. set(string key, string value, ...
- LeetCode 275. H指数 II(二分查找)
1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数&q ...
- leetcode 275. H 指数 II
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数" ...
- 275. H 指数 II
难度:中等 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数 ...
- LeetCode Algorithm 274. H 指数
274. H 指数 Ideas H指数表示的是有h篇论文被引用了至少h次. 我们可以将citations逆序排列,表示引用次数从高到底排列. 如果我们从前向后遍历数组,那么第i位上值v,就表示至少有i ...
- 【数据结构与算法】之深入解析“H指数II”的求解思路与算法示例
一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照升序排列,计算并返回该研究者的 h 指数. h ...
- leetcode275. H指数 II(二分法)
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(h ...
- leetcode 274, 275. H-Index I, II(H 指数问题合集,线性查找/二分查找)
274. H-Index https://leetcode.com/problems/h-index/ 题解 第一遍没看懂题目.看了中文版的题目才明白,是要找到 h,满足总共有 h 篇论文分别被引用了 ...
- LeetCode 274. H指数(排序,哈希)
1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(high c ...
- 二分答案——H指数(Leetcode 274)
题目选自Leetcode 274. H指数 二分查找(答案)的简单题~ 理解题意 这个例子有点儿特殊,论文被引用了 3 次,篇数有 3 篇.再来看一个更一般的例子: 结论: 这条分割线越靠左边,说明被 ...
最新文章
- python基础知识整理 第一节:入门记录(包含代码与执行结果)
- 【C++】C++11新增关键字详解
- maven 创建module失败 ,异常Unable to read parent POM
- 九. Python基础(9)--命名空间, 作用域
- java+mysql中文乱码问题
- SAP CRM WebClient UI,点击Master Data工作中心后执行的JavaScript代码
- Linux操作系统基础解析之(三)——基本命令行操作及获得帮助的方法
- 编码原则:意外情况的注释
- Linux下修改mysql密码以及忘记密码重置
- Modbus通用数据读取工具设计及使用
- 点击鼠标出现漂浮字体(自信, 自强, 坚持...)效果实现
- 593. 有效的正方形
- 2017年9月计算机二级office题库百度云,2017年9月计算机二级office题库
- 车辆碰撞起火事故的规律特点及常见起火原因 | 事故分析
- 计算机怎么看事件管理,用事件查看器查看电脑使用记录
- 台式计算机网线接口松动怎么办,台式电脑网卡坏了怎么修复(图文)
- sequence与sequencer
- 音视频开发系列-H264编码原理
- 秀米svg点击显示另一张图_公众号排版怎么做?点击图片出现另一张图片是怎么弄的?...
- [实用技巧] (转帖)关于MyDocument.exe -- 打印店病毒
热门文章
- db2 cmd命令操作
- 郭敏:什么是交通事件?如何做好交通事件管理以降低二次事故发生概率?
- 【读书笔记】设计模式第十一十二章收获
- 验证happenBefore
- Towards More Flexible and Accurate Object Tracking with Natural Language:Algorithms and Benchmark
- CImage::Loda 方法加载图片失败,因为vs2013中该方法不支持中文变量
- CryEngine技术讲解
- 微信公众号开发三 测试号申请
- 关于连接同一wifi,手机可以上网,电脑无法上网问题
- 【架构】1366- 如何画出一张优秀的架构图