274、H指数

题目

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。

根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且 至少 有 h 篇论文被引用次数大于等于 h 。如果 h 有多种可能的值,h 指数 是其中最大的那个。

示例 1:

输入:citations = [3,0,6,1,5]
输出:3
解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。
由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3。
示例 2:

输入:citations = [1,3,1]
输出:1

解决思路

计数排序,定义一个数组,用于存放各引用次数出现的次数,如果大于数组长度,那么就按数组长度算。然后从后往前遍历计数数组,找出出现次数大于等于引用次数的,返回出现次数。
时间复杂度O(n),空间复杂度O(n)

代码

class Solution {public int hIndex(int[] citations) {// 解决思路:计数排序,定义一个数组,用于存放各引用次数出现的次数,如果大于数组长度,那么就按数组长度算。然后从后往前遍历计数数组,找出出现次数大于等于引用次数的,返回出现次数。int n = citations.length;// 1. 定义数组,用于记录各元素出现次数。出现次数是0到数组长度int[] cnt = new int[n + 1];for (int i = 0; i < n; i++) {// 2. 如果出现次数大于等于数组长度,最后一个位置加1,否则对应位置加1.if (citations[i] >= n) {cnt[n]++;} else {cnt[citations[i]]++;}}// 2. 定义total记录出现次数int total = 0;// 3. 遍历数组,统计数组中每个引用次数的出现次数for (int i = n; i >= 0; i--) {total += cnt[i];// 4. 如果出现次数大于等于引用次数就返回。if (total >= i) {return i;}}return 0;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++11】异常

前言 上文我们学习到了C11中类的新功能【C11】类的新功能-CSDN博客 本文我们来学习C下一个新语法&#xff1a;异常 1.异常的概念 异常的处理机制允许程序在运行时就出现的问题进行相应的处理。异常可以使得我们将问题的发现和问题的解决分开&#xff0c;程序的一部分负…

Linux基础命令之目录管理——了解各种操作文件目录的命令,万字教学,超详细!!!(1)

文章目录 前言1、Linux文件系统1.1 核心特点1.2 重要目录结构1.3 文件类型1.4 文件和目录的命名规则1.5 文件与目录的定位方式 2、查看目录或文件的详细信息&#xff08;ls&#xff09;2.1 基本语法2.2 常用操作2.3 高级用法 3、切换目录&#xff08;cd&#xff09;3.1 常用操作…

在线caj转换word

CAJ格式是中国知网特有的一种文献格式&#xff0c;在学术研究等领域广泛使用&#xff0c;但有时我们需要将其转换为Word格式&#xff0c;方便编辑、引用文献。本文分享如何轻松将CAJ转换为word的转换工具&#xff0c;提高阅读和办公效率。 如何将CAJ转换WORD? 1、使用CAJ转换…

【现代深度学习技术】注意力机制05:多头注意力

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

SpringBoot 集成滑块验证码AJ-Captcha行为验证码 Redis分布式 接口限流 防爬虫

介绍 滑块验证码比传统的字符验证码更加直观和用户友好&#xff0c;能够很好防止爬虫获取数据。 AJ-Captcha行为验证码&#xff0c;包含滑动拼图、文字点选两种方式&#xff0c;UI支持弹出和嵌入两种方式。后端提供Java实现&#xff0c;前端提供了php、angular、html、vue、u…

边缘网关(边缘计算)

边缘网关是边缘计算架构中的关键组件&#xff0c;充当连接终端设备&#xff08;如传感器、IoT设备&#xff09;与云端或核心网络的桥梁。它在数据源头附近进行实时处理、分析和过滤&#xff0c;显著提升效率并降低延迟。 核心功能 协议转换 ○ 支持多种通信协议&#xff08;如…

OpenCV定位地板上的书

任务目标是将下面的图片中的书本找出来&#xff1a; 使用到的技术包括&#xff1a;转灰度图、提取颜色分量、二值化、形态学、轮廓提取等。 我们尝试先把图片转为灰度图&#xff0c;然后二值化&#xff0c;看看效果&#xff1a; 可以看到&#xff0c;二值化后&#xff0c;书的…

机器学习第一讲:机器学习本质:让机器通过数据自动寻找规律

机器学习第一讲&#xff1a;机器学习本质&#xff1a;让机器通过数据自动寻找规律 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指…

修改图像分辨率

在这个教程中&#xff0c;您将学习如何使用Python和深度学习技术来调整图像的分辨率。我们将从基础的图像处理技术开始&#xff0c;逐步深入到使用预训练的深度学习模型进行图像超分辨率处理。 一、常规修改方法 1. 安装Pillow库 首先&#xff0c;你需要确保你的Python环境中…

jsAPI

环境准备 1 安装nvm nvm 即 (node version manager)&#xff0c;好处是方便切换 node.js 版本 安装注意事项 要卸载掉现有的 nodejs提示选择 nvm 和 nodejs 目录时&#xff0c;一定要避免目录中出现空格选用【以管理员身份运行】cmd 程序来执行 nvm 命令首次运行前设置好国…

SCDN是什么?

SCDN是安全内容分发网络的简称&#xff0c;它在传统内容分发网络&#xff08;CDN&#xff09;的基础上&#xff0c;集成了安全防护能力&#xff0c;旨在同时提升内容传输速度和网络安全性。 SCDN的核心功能有&#xff1a; DDoS防御&#xff1a;识别并抵御大规模分布式拒绝服务…

Qt/C++开发监控GB28181系统/实时视频预览/视频点播/rtp解包解码显示

一、前言 通过gb28181做实时视频预览&#xff0c;也就是视频点播功能&#xff0c;是最重要的功能了&#xff0c;绝对是整个系统排第一重要的&#xff0c;这就是核心功能&#xff0c;什么设备注册、获取通道等都是为了实时预览做准备的&#xff0c;当然这个功能也是最难的&…

找银子 题解(c++)

题目 思路 首先&#xff0c;这道题乍一看&#xff0c;应该可以用搜索来做。 但是&#xff0c;搜索会不会超时间限制呢&#xff1f; 为了防止时间超限,我们可以换一种做法。 先创立两个二维数组&#xff0c;一个是输入的数组a&#xff0c;一个是数组b。 假设 i 行 j 列的数…

子集树算法文档

1.算法概述 子集树是一种 回溯算法&#xff0c;用于生成一个集合的所有子集。给定一个数组 arr&#xff0c;该算法递归地遍历所有可能的子集&#xff0c;并通过一个辅助数组 x 标记当前元素是否被选中。 2.算法特点 时间复杂度&#xff1a;O(2n)&#xff08;因为一个包含 n 个…

HTTP/1.1 host虚拟主机详解

一、核心需求&#xff1a;为什么需要虚拟主机&#xff1f; 在互联网上&#xff0c;我们常常希望在一台物理服务器&#xff08;它通常只有一个公网 IP 地址&#xff09;上运行多个独立的网站&#xff0c;每个网站都有自己独特的域名&#xff08;例如 www.a-site.com​, www.b-s…

amass:深入攻击面映射和资产发现工具!全参数详细教程!Kali Linux教程!

简介 OWASP Amass 项目使用开源信息收集和主动侦察技术执行攻击面网络映射和外部资产发现。 此软件包包含一个工具&#xff0c;可帮助信息安全专业人员使用开源信息收集和主动侦察技术执行攻击面网络映射并执行外部资产发现。 使用的信息收集技术 技术数据来源APIs&#xf…

Spring Web MVC响应

返回静态页面 第一步 创建html时&#xff0c;要注意创建的路径&#xff0c;要在static下面 第二步 把需要写的内容写到body内 第三步 直接访问路径就可以 返回数据ResponseBody RestController Controller ResponseBody Controller&#xff1a;返回视图 ResponseBody&…

‌鸿蒙PC正式发布:国产操作系统实现全场景生态突破

鸿蒙PC正式发布&#xff1a;国产操作系统实现全场景生态突破‌ 2025年5月8日&#xff0c;华为在深圳举办发布会&#xff0c;正式推出搭载鸿蒙操作系统的个人电脑&#xff08;PC&#xff09;&#xff0c;标志着国产操作系统在核心技术与生态布局上实现历史性跨越。此次发布的鸿蒙…

【计算机视觉】OpenCV实战项目:Text-Extraction-Table-Image:基于OpenCV与OCR的表格图像文本提取系统深度解析

Text-Extraction-Table-Image&#xff1a;基于OpenCV与OCR的表格图像文本提取系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 图像预处理流水线2.2 表格结构检测算法2.3 OCR优化策略 3. 实战部署指南3.1 环境配置3.2 核心代码解析3.3 执行流程示例 4. 常见问题与解决方案4.…

Redis BigKey 问题是什么

BigKey 问题是什么 BigKey 的具体表现是 redis 中的 key 对应的 value 很大&#xff0c;占用的 redis 空间比较大&#xff0c;本质上是大 value 问题。 BigKey怎么找 redis-cli --bigkeysscanBig Key 产生的原因 1.redis数据结构使用不恰当 2.未及时清理垃圾数据 3.对业务预…