text: # LeetCode 275. H-Index II – 二分查找（Binary Search）系列题16
  
  Given an array of integers `citations` where `citations[i]` is the number of citations a researcher received for their `ith` paper and `citations` is sorted in an ascending order, return compute the researcher's `h`-index.
  
  According to the definition of h-index on Wikipedia: A scientist has an index `h` if `h` of their `n` papers have at least `h` citations each, and the other `n − h` papers have no more than `h` citations each.
  
  If there are several possible values for `h`, the maximum one is taken as the `h`-index.
  
  You must write an algorithm that runs in logarithmic time.
  
  Example 1:
  
  ```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, their h-index is 3.
  ```
  
  Example 2:
  
  ```Input: citations = [1,2,100]
  Output: 2
  ```
  
  Constraints:
  
  • `n == citations.length`
  • `1 <= n <= 105`
  • `0 <= citations[i] <= 1000`
  • `citations` is sorted in ascending order.
  
  ``````class Solution:
  def hIndex(self, citations: List[int]) -> int:
  n = len(citations)
  l, r = 0, n - 1
  
  while l <= r:
  mid = l + (r - l) // 2
  h = n - mid
  if citations[mid] >= h:
  r = mid - 1
  else:
  l = mid + 1
  
  return n - l ``````
  
  THE END
explanation: The document describes a problem from LeetCode, specifically problem 275, which involves calculating the h-index of a researcher given a sorted array of citations. The problem statement includes examples and constraints, and it provides a solution using binary search to achieve logarithmic time complexity.
  
  The document contains a question (the problem statement) and an answer (the provided solution).
distilabel_metadata.content: Evaluate the user given text extract and determine if it contains a math question and optionally and answer to this question.
  
  Output rules:
  
  1. Briefly describe the document and mention if it contains a question or a question and answer.
  2. Finalize the output with: Label: no-question,question,question-and-answer,multiple-question,multiple-question-and-answer
distilabel_metadata.role: system
distilabel_metadata.content: # LeetCode 275. H-Index II – 二分查找（Binary Search）系列题16
  
  Given an array of integers `citations` where `citations[i]` is the number of citations a researcher received for their `ith` paper and `citations` is sorted in an ascending order, return compute the researcher's `h`-index.
  
  According to the definition of h-index on Wikipedia: A scientist has an index `h` if `h` of their `n` papers have at least `h` citations each, and the other `n − h` papers have no more than `h` citations each.
  
  If there are several possible values for `h`, the maximum one is taken as the `h`-index.
  
  You must write an algorithm that runs in logarithmic time.
  
  Example 1:
  
  ```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, their h-index is 3.
  ```
  
  Example 2:
  
  ```Input: citations = [1,2,100]
  Output: 2
  ```
  
  Constraints:
  
  • `n == citations.length`
  • `1 <= n <= 105`
  • `0 <= citations[i] <= 1000`
  • `citations` is sorted in ascending order.
  
  ``````class Solution:
  def hIndex(self, citations: List[int]) -> int:
  n = len(citations)
  l, r = 0, n - 1
  
  while l <= r:
  mid = l + (r - l) // 2
  h = n - mid
  if citations[mid] >= h:
  r = mid - 1
  else:
  l = mid + 1
  
  return n - l ``````
  
  THE END
distilabel_metadata.role: user
distilabel_metadata.raw_output_q_a_detector_0: The document describes a problem from LeetCode, specifically problem 275, which involves calculating the h-index of a researcher given a sorted array of citations. The problem statement includes examples and constraints, and it provides a solution using binary search to achieve logarithmic time complexity.
  
  The document contains a question (the problem statement) and an answer (the provided solution).
  
  Label: question-and-answer