【】 Leetcode 1395. Nombre de Nombre d'équipes

Les sujets abordés sont les suivants:

Il y a  des n soldats debout dans une ligne. Chaque soldat reçoit une expérience unique  rating valeur.

Vous devez former une équipe de 3 soldats parmi eux selon les règles suivantes:

  • Choisissez 3 soldats avec index ( ijk) avec notation ( rating[i]rating[j]rating[k]).
  • Une équipe est valide si: ( rating[i] < rating[j] < rating[k]) ou ( rating[i] > rating[j] > rating[k]) où ( 0 <= i < j < k < n).

Retourne le nombre d'équipes que vous pouvez former compte tenu des conditions. (Soldats peuvent faire partie de plusieurs équipes).

Exemple 1:

Entrée: note = [2,5,3,4,1] 
Sortie: 3 
Explication: Nous pouvons former trois équipes compte tenu des conditions. (2,3,4), (5,4,1), (5,3,1).

Exemple 2:

Entrée: note = [2,1,3] 
Sortie: 0 
Explication: Nous ne pouvons pas former une équipe compte tenu des conditions.

Exemple 3:

Entrée: Evaluation = [1,2,3,4] 
Rendement: 4

Contraintes:

  • n == rating.length
  • 1 <= n <= 200
  • 1 <= rating[i] <= 10^5

idées de résolution de problèmes: Ce titre n'est pas difficile. En supposant que la note [i] au milieu de trois personnes, nous avons juste besoin de trouver chaque note [i] à gauche que le nombre de ses grandes et petites que les éléments, et sont note calculée [i] à droite que ses Japonais que lorsque le nombre de permutations peut être constitué d'un petit nombre d'éléments, un petit nombre de l'extrémité gauche du numéro à droite grand * + * grand nombre de petits gauche numéro de droite, à savoir Evaluation [i] au milieu des trois du total.

Code est la suivante:

classe Solution (objet):
     def numTeams (auto, évaluation):
         "" " 
        : évaluation du type: Liste [int] 
        : rtype: int 
        """ 
        res = 0
         pour i dans plage (1, len (note) -1 ): 
            left_small = 0 
            left_great = 0
             pour j en série (i):
                 si Evaluation [i]> note [j]: 
                    left_small + = 1
                 elif note [i] < note [j]: 
                    left_great+ = 1 

            right_small = 0 
            right_great = 0
             pour j en série (i + 1 , len (étoiles)):
                 si Evaluation [i]> Note [j]: 
                    right_small + = 1
                 elif Note [i] < Note [j]: 
                    right_great + = 1 

            res + = left_small * right_great 
            res + = left_great * right_small
             # notation d'impression [i], left_small, left_great, right_small, right_great 
        retour res

 

Je suppose que tu aimes

Origine www.cnblogs.com/seyjs/p/12631498.html
conseillé
Classement