2019年2月26日 星期二

[LeetCode] 275. H-Index II

轉自LeetCode

Given an array of citations sorted in ascending order (each citation is a non-negative integer) of a researcher, write a function to compute the researcher's h-index.
According to the definition of h-index on Wikipedia: "A scientist has index h if h of his/her N papers have at least h citations each, and the other N − h papers have no more than citations each."
Example:
Input: citations = [0,1,3,5,6]
Output: 3 
Explanation: [0,1,3,5,6] means the researcher has 5 papers in total and each of them had 
             received 0, 1, 3, 5, 6 citations respectively. 
             Since the researcher has 3
papers with at least 3 citations each and the remaining   two with no more than 3 citations each, her h-index is 3.
Note:
If there are several possible values for h, the maximum one is taken as the h-index.

<Soluion>

H-Index 的衍生題

解題想法:
  • 這次給的 input 已經是排序好的,所以可以直接拿來利用
  • 從題目來看,其實就是要找到一個一刀兩斷的 index,讓在這個點之上的所有值,都大於等於這個 index,在這個點之下的值,都小於等於這個 index
  • 綜合上述兩點,可以使用 binary search 來找,配合題意檢查和回傳對的值即可
code 如下
Java


kotlin

沒有留言:

張貼留言