zoukankan      html  css  js  c++  java
  • leetcode刷题笔记 274题 与 275题 H指数 I 与 II

    leetcode刷题笔记 274题 与 275题 H指数 I 与 II

    源地址:

    274. H 指数

    275. H 指数 II

    问题描述:

    274问题描述

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。

    h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数 不超过 h 次。)

    例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。

    示例:

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

    275题 问题描述

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 。编写一个方法,计算出研究者的 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 指数是其中最大的那个。

    //274题 首先进行由大到小的排序,从大端到小端进行筛选 符合H指数要求的数
    object Solution {
        def hIndex(citations: Array[Int]): Int = {
            val sortedArr = citations.sortWith(_ > _)
            for (i <- (1 to sortedArr.length).reverse) {
                if (sortedArr(i-1) >= i) return i
            }
            return 0
        }
    }
    
    //275题与274题不同主要在于 275使用从小到大的有序数组 以h进行分割的两端满足二分法,使用下标计算即可
    object Solution {
        def hIndex(citations: Array[Int]): Int = {
            val length = citations.length
            var left = 0
            var right = length
            while (left < right) {
                val mid = (left + right + 1) >> 1
                if (citations(length - mid) >= mid) left = mid
                else right = mid - 1
            }
            return left
        }
    }
    
  • 相关阅读:
    archlinux .bash_history
    Ubuntu环境下挂载新硬盘
    软碟通 UltraISO U启替代品 Win32DiskImager 无设备 无盘符 无u盘 无优盘 解决方案 之diskpart
    delphi Integer overflow
    MSBuild Tools offline
    delphi synedit免费的拼写检查器dll
    git 自定义命令行
    lua编译
    gcc ar
    Windows Subsystem for Linux (WSL)挂载移动硬盘U盘 卸载 c d 盘
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13955596.html
Copyright © 2011-2022 走看看