275:H 指数 II

This commit is contained in:
huangge1199 2021-07-12 13:09:57 +08:00
parent caac569267
commit 41aaf119af
3 changed files with 90 additions and 1 deletions

View File

@ -0,0 +1,61 @@
//给定一位研究者论文被引用次数的数组被引用次数是非负整数数组已经按照 升序排列 编写一个方法计算出研究者的 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 数组是保证有序的
// 你可以优化你的算法到对数时间复杂度吗
//
// Related Topics 数组 二分查找
// 👍 132 👎 0
package leetcode.editor.cn;
//275:H 指数 II
public class HIndexIi {
public static void main(String[] args) {
//测试代码
Solution solution = new HIndexIi().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int hIndex(int[] citations) {
int size = citations.length;
int start = 0;
int end = size - 1;
while (start < end) {
int mid = (end - start) / 2 + start;
if (citations[mid] >= size - mid) {
end = mid;
} else {
start = mid + 1;
}
}
return citations[end] >= size - end ? size - end : 0;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,28 @@
<p>给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照&nbsp;<strong>升序排列&nbsp;</strong>。编写一个方法,计算出研究者的 <em>h</em> 指数。</p>
<p><a href="https://baike.baidu.com/item/h-index/3991452?fr=aladdin">h 指数的定义</a>: &ldquo;h 代表&ldquo;高引用次数&rdquo;high citations一名科研人员的 h 指数是指他(她)的 N 篇论文中)<strong>总共</strong>有 h 篇论文分别被引用了<strong>至少</strong> h 次。(其余的&nbsp;<em>N - h&nbsp;</em>篇论文每篇被引用次数<strong>不多于 </strong><em>h </em>次。)&quot;</p>
<p>&nbsp;</p>
<p><strong>示例:</strong></p>
<pre><strong>输入:</strong> <code>citations = [0,1,3,5,6]</code>
<strong>输出:</strong> 3
<strong>解释: </strong>给定数组表示研究者总共有 <code>5</code> 篇论文,每篇论文相应的被引用了 0<code>, 1, 3, 5, 6</code> 次。
&nbsp; 由于研究者有 <code>3 </code>篇论文每篇<strong>至少</strong>被引用了 <code>3</code> 次,其余两篇论文每篇被引用<strong>不多于</strong> <code>3</code> 次,所以她的<em> h </em>指数是 <code>3</code></pre>
<p>&nbsp;</p>
<p><strong>说明:</strong></p>
<p>如果 <em>h </em>有多有种可能的值 <em>h</em> 指数是其中最大的那个。</p>
<p>&nbsp;</p>
<p><strong>进阶:</strong></p>
<ul>
<li>这是&nbsp;<a href="/problems/h-index/description/">H 指数</a>&nbsp;的延伸题目,本题中的&nbsp;<code>citations</code>&nbsp;数组是保证有序的。</li>
<li>你可以优化你的算法到对数时间复杂度吗?</li>
</ul>
<div><div>Related Topics</div><div><li>数组</li><li>二分查找</li></div></div>\n<div><li>👍 132</li><li>👎 0</li></div>

File diff suppressed because one or more lines are too long