[LC] 825. Los Amigos de edad apropiada

Algunas personas van a enviar solicitudes de amistad. La lista de sus edades se da y  ages[i] es la edad de la persona i. 

Una persona no va a amigo solicitud de la persona B si alguna de las siguientes condiciones son verdaderas (B = A!):

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

De lo contrario, una voluntad solicitud de amigo B.

Tenga en cuenta que si A pide a B, B no significa necesariamente petición A. Además, la gente no amigo solicitud de ellos mismos.

¿Cuántas total de solicitudes de amistad se hacen?

Ejemplo 1:

Entrada: [16,16] 
de salida: 2 
Explicación: 2 personas Solicitud de amistad entre sí.

Ejemplo 2:

Entrada: [16,17,18] 
de salida: 2 
Explicación: Solicitudes de amistad se hacen 17 -> 16, 18 -> 17.

Ejemplo 3:

Entrada: [20,30,100,110,120] 
Salida: 
Explicación: Solicitudes de amistad se hacen 110 -> 100, 120 -> 110, 120 -> 100.

 

notas:

  • 1 <= ages.length <= 20000.
  • 1 <= ages[i] <= 120.
clase de soluciones {
     pública  int numFriendRequests ( int [] edades) { 
        Mapa <Integer, Integer> mapa = nuevo HashMap <> ();
        int ans = 0 ;
        para ( int num: edades) { 
            map.put (num, map.getOrDefault (num, 0) + 1 ); 
        } 
        Para ( int a: map.keySet ()) {
             a ( int b: map.keySet ()) {
                 si (! IsValid (a, b)) {
                     continúe ; 
                }
                 Si (a == b) { 
                    ans + = map.get (a) * (map.get (a) - 1 ); 
                } Más { 
                    ans + = map.get (a) * map.get (b); 
                } 
            } 
        } 
        Volver ans; 
    } 
    
    Privada  boolean isValid ( int a, int b) {
         si (b <= 0,5 * a + 7 || b> a || b> a && un <100 ) {
             retorno  falsa ; 
        } 
        Devolver  cierto ; 
    }
}

 

Supongo que te gusta

Origin www.cnblogs.com/xuanlu/p/12596103.html
Recomendado
Clasificación