[ソート]H-index(java)


H-index
https://programmers.co.kr/learn/courses/30/lessons/42747#
プログラマーのソート問題でh-indexを二層砲口に解いた後、最適化されたコードが何なのかを探していたとき、びっくりして文章を書いた.
驚くべきアイデア 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.

  • この文章では,まずhの最値がnであることを知る.(私はこの条件も考えずに解決しました)

  • 次に、ソートされた参照では、2つの値citations[i], citations.length-iがiを増加させ、比較値citations[i] >= citations.length-iの場合の参照を繰り返す.length-iの値が答えです.
  • i値が高いほど,論文引用回数が多くなる点と,論文の最大数をできるだけ減らすことが利用されている点,交差点が最も値である点が不思議である.これ.思考力?🤭
    import java.util.*;
    
    class Solution {
        public int solution(int[] citations) {
            int answer = 0;
            Arrays.sort(citations);
            int len = citations.length;
            for(int i=0; i<len; i++){
                if(citations[i]>=len-i){
                    answer=len-i; break;
                }
            }
            return answer;
        }
    }
    大きなインスピレーションをくれたブログ
    https://bada744.tistory.com/94(プログラマー/level 2 H-index willcometrue)
    間違った概念や疑問があれば、勝手にメッセージを残してください.ありがとうございます.