Entrando leetcode ---- dos números

 

 

. 1  Importación Time
 2  
3.  # Método a: 
. 4  clase Solución:
 . 5      DEF twoSum (Self, los nums, objetivo):
 . 6          para I en Rango (len (los nums)): # lista primer ciclo
 . 7              para J en Rango (len ( los nums) -1 ): # anuncio debe ser el segundo ciclo del primer ciclo de lo digital excluidos
 8.                  SI los nums [i] == los nums [J]: # resultado no es el mismo número
 . 9                      Pass 
10                  elif los nums [I ] + los nums [J] == objetivo:
 . 11                      de retorno J, I
 12 es                  la otra cosa :
 13 es                      Continuar 
14  
15 # Método dos: 
16  clases Solución:
 . 17      DEF twoSum (Ser, el nums, objetivo):
 18 es          para que en el rango (len (los nums)):
 . 19              SI objetivo -nums [I] en los nums y I = nums.index (objetivo! - los nums [I]): # el mismo elemento si la diferencia, el índice de retornos de dos elementos y no en la lista
 20 es                  el retorno [I, nums.index (objetivo - los nums [I])]
 21 es              la otra cosa :
 22 es                  Continuar 
23 es  
24  # método de tres 
25  clases Solución:
 26      DEF twoSum (Ser, nums, objetivo):
 27         = DIC {}
 28          para I, NUM en la enumerate (los nums): # una lista de todos los elementos de acuerdo con el primer valor de índice, se coloca el número en la tecla de modo de diccionario.
29              DIC [NUM] = I
 30          para I, NUM en la enumerate (los nums):
 31 es              J = DIC [Destino- NUM] diferencia # clave es buscar en el diccionario no hay un valor correspondiente.
32              SI ! I = J y J ES  No Ninguno:   
 33 es                  el retorno [i, j]
 34 es  
35 T1 = time.perf_counter ()
 36 Solución = Solución ()
 37 [ A = solution.twoSum ([2,7,11,15, 2,6,98,23], 13)
 38 t2 = time.perf_counter ()
 39  de impresión (a)
 40  de impresión (t2-t1)

Uno de los métodos más convencionales de pensar, es decir, bucles anidados, constantemente lista de variables. El segundo método utiliza un bucle, lo que reduce el valor de cada ciclo de vista de destino está en la lista. Método tres utiliza el diccionario y mejorar la eficiencia

Supongo que te gusta

Origin www.cnblogs.com/GouQ/p/12615827.html
Recomendado
Clasificación