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 h citations each."
Example:
Input:papers with at leastcitations = [0,1,3,5,6] Output: 3 Explanation:[0,1,3,5,6] means the researcher has5 papers in total and each of them had received 0, 1, 3, 5, 6 citations respectively. Since the researcher has3
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 來找,配合題意檢查和回傳對的值即可
Java
kotlin
沒有留言:
張貼留言