当前位置: 首页 > news >正文

【Leetcode】【每日一题】【中等】274. H 指数

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/h-index/description/?envType=daily-question&envId=2023-10-29

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 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

h指数

例如h指数为3,则说明:

(1)至少发表了3篇论文——>符合条件(2)的元素个数≥3

(2)每篇论文至少被引用3次——>元素大小≥3

自己的思路

输入数组 citations,先将其排序,根据h指数的定义进行判断。

例如示例1

citations = [3,0,6,1,5]

排序后

citations = [0,1,3,5,6]

(1)≥0的元素有5个,记为<0,5>

(2)≥1的元素有4个,记为<1,4>

(3)≥2的元素有3个,记为<2,3>

(4)≥3的元素有3个,记为<3,3>

=====================(其实到这里就可以中止了,因为key<value,不符合h指数的定义)

(5)≥4的元素有2个,记为<4,2>

(6)≥5的元素有2个,记为<5,2>

(7)≥6的元素有1个,记为<6,1>

所以解题的重点是如何计算value,这里我使用了一层循环寻找比key大的元素个数。

代码

class Solution {public int find(int[] citations, int target) {int len = citations.length;for (int i = 0; i < len; i++) {if (citations[i] >= target) {return len - i;}}return 0;}public int hIndex(int[] citations) {Arrays.sort(citations);HashMap<Integer, Integer> hashMap = new HashMap<>();int len = citations.length;for (int i = 0; i < len + 1; i++) {int tmp = find(citations, i);if (i > tmp && hashMap.size() >= 1)break;hashMap.put(i, tmp);}System.out.println(hashMap);Object[] obj = hashMap.keySet().toArray();Arrays.sort(obj);return (int) obj[obj.length - 1];}
}

结果感觉不是很好

 

力扣官方题解

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/h-index/solutions/869042/h-zhi-shu-by-leetcode-solution-fnhl/?envType=daily-question&envId=2023-10-29只需要知道存在即可,例如排序后的示例1:

citations = [0,1,3,5,6]

假设h为0,从后往前比较,

首先是6>0,即为存在一篇论文,并且这一篇论文被引用次数>0,则可以将h设为1;

然后是5>1,即为存在两篇论文,并且这两篇论文被引用次数>1,则可以将h设为2(为什么是两篇?因为h还没有到达2,所以现在不可能出现引用次数<2的论文);

然后是3>2,即为存在三篇论文,并且这三篇论文被引用次数>2,则可以将h设为3;

最后是1<3,因为要取最大的,所以结束比较

代码

class Solution {public int hIndex(int[] citations) {Arrays.sort(citations);int h = 0, i = citations.length - 1; while (i >= 0 && citations[i] > h) {h++; i--;}return h;}
}

相关文章:

【Leetcode】【每日一题】【中等】274. H 指数

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/h-index/description/?envTyped…...

MySQL读写分离技术及实现方案

MySQL读写分离技术及实现方案 本文主要介绍了MySQL读写分离技术的原理、实现方案以及示例。通过使用读写分离技术&#xff0c;可以提高数据库的性能&#xff0c;降低服务器的压力。 一、MySQL读写分离技术简介 读写分离是指将数据库的读操作和写操作分别分配到不同的服务器上…...

git 推送到github远程仓库细节处理(全网最良心)

我查看了很多网上的教程都不是很好 我们先在github创建一个仓库&#xff0c;且初始化 readme 我们到本地文件初始化仓库 添加远程仓库 这时候我们就 git add . , git commit ,再准备git push 的时候 显示没有指定远程的分支 我们按照提示操作 提示我们要先git pull 提示我…...

算法训练|数据流中的中位数

LCR 160. 数据流中的中位数 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a;这题自己最开始的想法是直接使用vector容器&#xff0c;每次取中位数的时候就进行一次排序&#xff0c;超时。题解很巧妙的利用大根堆和小根堆来解决问题&#xff0c;大根堆和小根堆各存一…...

LeetCode 2558. 从数量最多的堆取走礼物【模拟,堆或原地堆化】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

windows服务器环境下使用php调用com组件

Office设置 安装 office2013 且通过正版激活码激活 在组件服务 计算机 我的电脑 DOM 中找到 Microsoft Word 97 - 2003 文档 服务&#xff0c;右键属性 身份验证调整为 无 在 标识中 调整为 交互式用户 php环境设置 开启com组件扩展 在php.ini中设置 extensionphp_com_dotn…...

3DCAT+东风日产:共建线上个性化订车实时云渲染方案

近年来&#xff0c;随着5G网络和云计算技术的不断发展&#xff0c;交互式3D实时云看车正在成为一种新的看车方式。 与传统的到4S店实地考察不同&#xff0c;消费者可以足不出户&#xff0c;通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性…...

【VR开发】【Unity】【VRTK】1-无代码VRVR开发介绍

本篇开始精简讲解VRTK相关的知识。 VRTK是基于Unity的一套提供无代码VR开发的插件,这套插件开源,可商用,集合了目前可能的VR体验组件,可以让不会C#编程但想要开发VR体验的人在不写一行代码的前提下开发出心仪的VR作品。 这套组件问世后也很受欢迎,目前已经进化到了第四代…...

全国地级市最新城投债数据(2006-2023.2)

地级市-城投债数据是关于各地级市发行的城市投资建设项目资金债券的统计数据。这些数据对于研究者来说有着一定的参考价值。首先&#xff0c;地级市-城投债数据能够提供全国各地级市城投债发行的数量和规模情况&#xff0c;帮助研究者了解城市基础设施建设和经济发展的情况。其…...

vm_flutter

附件地址 https://buuoj.cn/match/matches/195/challenges#vm_flutter 可以在buu下载到。 flutter我也不会&#xff0c;只是这个题目加密算法全部在java层&#xff0c;其实就是一个异或和相加。 反编译 package k;import java.util.Stack;/* loaded from: classes.dex */ pu…...

MySQL数据库#6

Python操作mysql 在使用Python连接mysql之前我们需要先下载一个第三方的模块 pymysql的模块&#xff0c;导入后再进行操作。 操作步骤&#xff1a;1. 先连接mysql host&#xff0c;port&#xff0c;charset&#xff0c;username password 库&#xff0c;等等。 import pymysql…...

YOLO v1(2016.5)

文章目录 AbstractIntroduction过去方法存在的问题我们提出的方法解决了... Unified DetectionNetwork DesignTrainingInference Comparison to Other Detection SystemsDeformable parts modelsR-CNNOther Fast DetectorsDeep MultiBoxOverFeatMultiGrasp ExperimentsConclusi…...

SQL比较两次的字段集合,找出并返回差异,主要用于更新记录事件

Create PROCEDURE [dbo].[SysGetTableFieldsCompare] -- Description: <比较两次的字段集合&#xff0c;找出并返回差异&#xff0c;主要用于更新记录事件> -- Return 0- 成功&#xff0c; -1- 没有这个表 -- Rev: 1.00 -- FieldsSource Nvarchar(max) , FieldsTarg…...

muduo源码剖析之Acceptor监听类

简介 Acceptor类用于创建套接字&#xff0c;设置套接字选项&#xff0c;调用socket()->bind()->listen()->accept()函数&#xff0c;接受连接&#xff0c;然后调用TcpServer设置的connect事件的回调。 listen()//在TcpServer::start中调用 封装了一个listen fd相关…...

express session JWT JSON Web Token

了解 Session 认证的局限性 Session 认证机制需要配合 cookie 才能实现。由于 Cookie 默认不支持跨域访问&#xff0c;所以&#xff0c;当涉及到前端跨域请求后端接口的时候&#xff0c;需要做很多额外的配置&#xff0c;才能实现跨域 Session 认证。 注意&#xff1a; 当前端…...

负载均衡策略 LVS

一、集群功能分类 1、LB (1) 概念&#xff1a; LB&#xff1a;负载均衡 (Load Balancing) 是一种分发网络流量的技术&#xff0c;LB 负载均衡的基本原理是将传入的网络流量分发到多个后端服务器&#xff0c;以确保这些服务器都承担相似的工作负载&#xff0c;从而避免某一台…...

驱动开发6 IO多路复用——epoll

核心操作&#xff1a;一棵树、一张表、三个接口 相关案例 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys…...

【python学习笔记——列表】

1、列表定义 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 空列表 list[]非空列表 列表定义时例如list[‘csdn’, ‘is’ ,‘good’ ,2023]&#xff0c;直接给列表内赋值 2、列表索引规则 列表名[start:stop:step]&#xff0c;前闭后开&#xff0c;即取索引为start…...

TensorRT量化实战课YOLOv7量化:YOLOv7-PTQ量化(一)

目录 前言1. YOLOv7-PTQ量化流程2. 准备工作3. 插入QDQ节点3.1 自动插入QDQ节点3.2 手动插入QDQ节点 前言 手写 AI 推出的全新 TensorRT 模型量化实战课程&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考。 该实战课程主要基于手写 AI 的 Latte 老师所出的 Tens…...

[微信小程序踩坑]微信小程序editor富文本组件渲染字符串时,内部图片超出大小导致无法正常渲染或回显(数据传输长度为 3458 KB,存在有性能问题!)

坑一&#xff1a;回显问题 富文本组件&#xff1a; <editor id"editor" name"{{name}}" style"font-size: 28rpx;color: #C9CDD4" read-only"{{true}}" placeholder"{{placeholder}}" bind:input"onChange11"…...

Android Studio 高版本兼容低版本项目配置

AndroidStudio开发工具高版本兼容低版本项目配置&#xff1a;1、 JDK 配置&#xff1a;gradle.properties 文件中指定jdk 版本&#xff1a;org.gradle.java.homeD\:\\ProgramFiles\\JDK\\jdk-11.0.262 配置Gradle 编译版本&#xff1a;3. 显示所有Gradle task 列表设置完成后&a…...

Scrcpy:重新定义安卓设备跨平台交互体验

Scrcpy&#xff1a;重新定义安卓设备跨平台交互体验 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/gh_mirrors/sc/scrcpy 一、跨设备交互的现实困境&#xff1a;发现问题本质 在数字化办公与移动开发的日常场景中&a…...

Optick与虚幻引擎集成教程:打造专业级游戏性能分析环境

Optick与虚幻引擎集成教程&#xff1a;打造专业级游戏性能分析环境 【免费下载链接】optick C Profiler For Games 项目地址: https://gitcode.com/gh_mirrors/op/optick 作为游戏开发者&#xff0c;你是否曾经为性能瓶颈而苦恼&#xff1f;想要深入了解游戏运行时的性能…...

深度解析:Element Plus架构设计与实现原理

深度解析&#xff1a;Element Plus架构设计与实现原理 【免费下载链接】element-plus &#x1f389; A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus Element Plus作为Vue.js 3生态中最具影响力的企业级UI…...

Asp.Net MVC杂谈之:—步步打造表单验证框架[重排版](1)

在实际使用中,我们可以考虑多种形式来进行这一验证(注:本文目前只研究服务器端验证的情况),最直接的方式莫过于对每个表单值手动用C#代码进行验证了,比如: if(!Int32.TryParse(Request.Form[“age”], out age)){ xxxx… } If(age < xxx || age > xxx){ xxxx… }…...

从HC-SR04老用户视角,实测2020新版:盲区更小、功耗更低,但这两点不注意容易翻车

HC-SR04新版深度评测&#xff1a;老用户必看的5个升级细节与3个隐藏陷阱 第一次拿到2020版HC-SR04时&#xff0c;我差点以为发错了货——外观几乎和老版本一模一样&#xff0c;连螺丝孔位都分毫不差。但当我用示波器捕捉到仅2.1mA的工作电流时&#xff0c;才确信这确实是用上了…...

【Python MCP服务器安全开发黄金模板】:20年专家亲授7大零信任实践与3层防御体系

第一章&#xff1a;Python MCP服务器安全开发黄金模板概览Python MCP&#xff08;Model-Controller-Protocol&#xff09;服务器是一种面向协议驱动、可扩展性强的后端服务架构&#xff0c;广泛应用于物联网控制平台与微服务网关场景。本章所介绍的“黄金模板”并非通用框架&am…...

4个维度解析Lenovo Legion Toolkit:游戏本性能管理的轻量革命

4个维度解析Lenovo Legion Toolkit&#xff1a;游戏本性能管理的轻量革命 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 1.…...

CVE-2024-36401复现

一.漏洞概述 CVE-2024-36401 是 GeoServer 中的一个严重级远程代码执行漏洞&#xff08;CVSS 9.8&#xff09;&#xff0c;允许未经身份验证的远程攻击者在服务器上执行任意代码。该漏洞源于 GeoServer 调用的 GeoTools 库 API 在评估 XPath 表达式时存在不安全处理&#xff0…...

告别付费IP!手把手教你用ZCU102 PS端DP接口点亮显示器(附参数调试心得)

解锁ZCU102 PS端DisplayPort潜力&#xff1a;零成本实现高效显示输出的实战指南 在嵌入式视觉系统开发中&#xff0c;显示输出往往是项目落地的最后一道关卡。当我在多个Zynq UltraScale MPSoC项目中反复遭遇HDMI IP核的授权困扰和PL端实现的复杂性后&#xff0c;意外发现PS端集…...