【LC】適切な年齢の825友達

一部の人々は、友達のリクエストを行います。自分の年齢のリストが与えられたとされる  ages[i] i番目の人物の年齢です。 

人物A、以下の条件のいずれかに該当する場合友申請者B(B = A!)しません。

  • age[B] <= 0.5 * age[A] + 7
  • age[B] > age[A]
  • age[B] > 100 && age[A] < 100

それ以外の場合は、意志の友達リクエストB.

注AはBを要求した場合、Bはまた、必ずしも要求A.しないことを、人々はしません友達リクエストそのもの。

どのように多くの総友達リクエストを作っていますか?

例1:

入力:[16,16] 
出力:2 
説明:2人の友人同士を要求します。

例2:

入力:[16,17,18] 
出力:2 
説明:友達リクエストが17作られています- > 16、18 - > 17。

例3:

入力:[20,30,100,110,120] 
出力:
説明:友達リクエスト110作られる- > 100、120 - > 110、120 - > 100。

 

ノート:

  • 1 <= ages.length <= 20000
  • 1 <= ages[i] <= 120
クラスのソリューション{
     公共 のint numFriendRequests(INT []歳){ 
        地図 <整数、整数>マップ= 新しい HashMapの<> ();
        int型 ANS = 0 ;
        INT :年齢NUM){ 
            map.put(NUM、map.getOrDefault(NUM、 0)+ 1 )。
        } 
        のためのINT :map.keySet()){
             ためのint型B:map.keySet()){
                 場合(!はisValid(B)){
                     続けます
                }
                もし(== B){ 
                    ANS + = map.get()*(map.get() - 1 )。
                } { 
                    ANS + = map.get()* map.get(B)。
                } 
            } 
        } 
        戻りANS。
    } 
    
    プライベート ブールのisValid(int型 A、int型B){
         場合(B <= 0.5×A + 7 || B> || B> && <100 ){
             戻り 
        } 
        を返す 
    }
}

 

おすすめ

転載: www.cnblogs.com/xuanlu/p/12596103.html