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

leetcode_274 H指数

1. 题意

在数组中找到最大的k, 使得至少k个数不小于k

H指数

2. 题解

2.1 排序

从大到小排序完后,直接模拟即可。

class Solution {
public:int hIndex(vector<int>& citations) {sort( citations.begin(), citations.end() );int res = 0;int cur = citations.size() - 1;while ( cur > -1) {if (res + 1 > citations[cur])break;++res;--cur;}return res;}
};
2.2 计数排序

假设共发表了k篇论文,则H指数最大值为k;再看数据范围则可以缩小,用计数排序进行统计结果,最后从后往前遍历,当累计的论文数大于当前idx, 则返回结果。

class Solution {
public:int hIndex(vector<int>& citations) {int sz = citations.size();int arr[5000+1];memset(arr, 0, sizeof(arr));for (auto &v: citations) {if (v > sz)arr[sz]++;elsearr[v]++;}int res = 0;int cnt = 0;for (int i = sz; i > 0; --i) {cnt += arr[i];if ( cnt >= i ) {res = i;break;}}return res;}
};
2.3 二分查找

由于答案在一定范围,所以可以二分答案,每次判断是否满足H指数的定义。


class Solution {
public:int hIndex(vector<int>& citations) {int sz = citations.size();int l = 0;int r = sz;int ans = 0;function<int(const vector<int> &, int)>p = [&](const vector<int> &arr, int b)->int{int ans = 0;for (auto v:arr)if (v >= b)++ans;return ans;};while ( l < r) {int mid = l + (r - l + 1 >> 1);int cnt = p(citations, mid);if ( cnt >= mid )l = mid;elser = mid - 1;}return l;}
};
http://www.lryc.cn/news/213265.html

相关文章:

  • 微服务框架Consul--新手入门
  • docker运行syslog-ng,搭建日志服务器
  • Redis代替session实现用户验证
  • Ubuntu 内核降级到指定版本
  • uniapp开发app,在ios真机上出现的css样式问题
  • uniapp 页面间传参方法
  • 【年终特惠】基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升
  • 驱动开发7 基于GPIO子系统编写LED驱动,编写应用程序进行测试设置定时器,5秒钟打印一次hello world
  • 亚马逊云科技为奇点云打造全面、安全、可扩展的数据分析解决方案
  • 应用案例|基于三维机器视觉的曲轴自动化上下料应用方案
  • 关于ios和Android手机的下载pdf文件功能探讨
  • 医疗安全不良事件管理系统源码(PHP+ vue+laravel)
  • 基于ISO13209(OTX)实现引导诊断
  • 不一样的网络协议-------KCP协议
  • 前端-关于分辨率和屏幕大小关系的浅谈
  • where怎么等于多个值,sql where多个值
  • 02.Oracle的启动过程
  • git跳过用户名密码验证,以及配置credential-helper
  • web前端常见开发工具汇总 你用过几个?
  • 518抽奖软件,可从Excel~Word~Pdf~网页导入名单
  • 初学编程入门基础教学视频,中文编程开发语言工具箱之豪华编辑构件,免费版中文编程软件下载
  • Objective-C基本数据类型使用
  • 【前端早早聊直播回顾】Harmony Next 与 Flutter 的不解之缘
  • Vue之CSS基础
  • 【c++|opencv】二、灰度变换和空间滤波---3.均值滤波
  • 【Arduino环境下驱动合宙esp32c3单片机基本外设】
  • 一站式迁移,人大金仓助力大地保险业务无感升级
  • 基于SSM的模具制造企业订单跟踪管理系统设计与实现
  • 计算机基础知识41
  • requests之get请求实例-百度搜索