leetcode1395

1  clase Solución:
 2      def  __init__ (self):
 3          # self.l = [] 
4          self.count = 0
 5  
6      def marcha atrás (self, calificación, temp, idx, inc):
 7          si inc == 0: # 递减
8              si len (temp) == 3 :
 9                  # self.l.append (temp [:]) 
10                  self.count + = 1
 11                  de retorno 
12              lo demás :
 13                  para i en rango (idx, len (rating)):
 14                      Silen (temp) == 0 o calificación [i] <temp [-1 ]:
 15                          temp.append (valoración [i])
 16                      otra cosa :
 17                          continúan 
18                      self.backTrack (valoración, temp, i + 1 , inc)
 19                      si len (temp)> 0:
 20                          temp.pop (-1 )
 21          otra cosa : # 递增
22              si len (temp) == 3 :
 23                  # self.l.append (temp [:]) 
24                  self.count + = 1
 25                  de retorno 
26              otra cosa :
27                  para i en rango (idx, Len (rating)):
 28                      si len (temp) == 0 o calificación [i]> temp [-1 ]:
 29                          temp.append (valoración [i])
 30                      otra cosa :
 31                          continúan 
32                      self.backTrack (valoración, temp, i + 1 , inc)
 33                      si len (temp)> 0:
 34                          temp.pop (-1 )
 35  
36  
37      def numTeams (self, Puntuación: ' Lista [int] ' ) - > int:
 38         self.backTrack (valoración, [], 0,0)
 39          self.backTrack (valoración, [], 0,1 )
 40          # impresión (self.l) 
41          de retorno self.count

Algoritmo de pensamiento: marcha atrás.

La parte posterior serie dos veces, una para encontrar triples decrecientes; mirada para otro incremento de triples.

consulta recursiva, para encontrar tres elementos calificados, se registra 1

Supongo que te gusta

Origin www.cnblogs.com/asenyang/p/12591685.html
Recomendado
Clasificación