主題-275 Leetcode二分。HインデックスII(H-インデックスII)
アレイ研究の引用番号(引用の非負整数)を考えれば、昇順に配列を有しています。h指数の研究者を計算する方法を記述します。 h指数の定義:研究者のh指数は、彼(彼女)は、ほとんどの時間の論文で(中Nの論文)が、少なくともH回引用されたことです、ハイ引用「(ハイ引用)「時間の略」 (残りのN - H紙各引用は、H回以上を数える。)」 例: 入力:引用読み込み = [0,1,3,5,6 ] 出力: 3 説明:研究者は配列が表す所定の合計 5つの論文は、各用紙は0、1、3、5、6、対応する引用された回。 研究者が持っているので、それぞれの紙の3つが少なくとも3回を引用し、残りの2つの論文は、それぞれの3倍以上であるので、彼女はh指数が3であるのです引用しました。 注意: あなたが時間どのように可能な値のようなものならば、h指数は最大のものです。
分析:
H指数を求めて、私たちが見つかりました。対象を観察しました。
それが3である場合、それは3つの記事より引用または3に等しくなければなりません。
その後、我々はバイナリのルールを書くことができます。
例えば引用= [0,1,3,5,6]
引用が1である場合には、参照番号の少なくとも一方が1であり、実際には少なくとも4つがあり、その後、我々は正しいものを見つけるために継続する必要があります。
次の規則が適用されます。
もし(引用文献[中間] <(len- MID)){ L =ミッド+ 1 。 } 他{ R = ミッド。 }
ACコード:
クラスソリューション{ 公共 のint h指数(INT []引用){ int型のlen = citations.length。 int型の L = 0 ; INTの R = LEN。 一方、(L < R){ int型 1 >>>ミッド=(L + R) 。 もし(引用文献[中間] <(len- MID)){ L =ミッド+ 1 。 } 他{ R = ミッド。 } } 戻り len- L。 } }