Gasolinera leetcode134

1  """ 
2  Hay gasolineras N a lo largo de un recorrido circular, donde la cantidad de gas en la estación i es el gas [i].
 3  Usted tiene un coche con un tanque de gas ilimitado y cuesta coste [i] de gas a los viajes de la estación i para su próxima estación (i + 1). usted comienza el viaje con el depósito vacío en una de las estaciones de servicio.
 4  índice de retorno de la estación de gas inicial si se puede viajar por el circuito una vez en la dirección de las agujas del reloj, de lo contrario el retorno . -1
 5  Nota:
 6      . Si existe una solución, se garantiza que sea único
 7      Ambas matrices de entrada son no vacío y tienen la misma longitud.
 8      cada elemento en la matrices de entrada es un número entero no negativo.
 9 Ejemplo 1:
 10  de entrada:
 11  gas = [1,2,3,4,5]
 12  costo = [3,4,5,1,2]
 13  de salida: 3
 14  Explicación:
 15  de inicio en la estación 3 (índice 3) y llenar con 4 unidad de gas. Su tanque = 0 + 4 = 4
 16  viaje a la estación 4. Su tanque = 4 - 1 + 5 = 8
 17  viaje a la estación de 0. Su tanque = 8 - 2 + 1 = 7
 18  viaje a la estación de 1. Su tanque = 7 - 3 + 2 = 6
 19  viajes a la estación 2. Su tanque = 6 - 4 + 3 = 5
 20  viajes a la estación 3. El costo es de 5. Su gas es justo lo suficiente para volver trayecto al la estación 3.
 21  Por lo tanto, volver 3 como el índice de partida.
22 Ejemplo 2:
 23  de entrada:
 24  gas = [2,3,4]
 25  costo = [3,4,3]
 26  de salida: -1
 27  Explicación:
 28  no se puede iniciar en la estación de 0 o 1, ya que no hay suficiente gas para los viajes a la siguiente estación.
29  Empecemos en la estación 2 y se llenan de 4 unidad de gas. Su tanque = 0 + 4 = 4
 30  viajes a la estación de 0. Su tanque = 4 - 3 + 2 = 3
 31  viajes a la estación de 1. Su tanque = 3 - 3 + 3 = 3
 32  No se puede viajar de regreso a la estación 2, como se se requiere de 4 unidades de gas, pero sólo tiene 3.
 33  Por lo tanto, no se puede viajar por el circuito una vez, sin importar dónde empezar.
34  """
35  "" " 
36  Solución A: posee el AC
 37 [  de acuerdo con la reivindicación sujeto para lograr normal de
 38 es  " "" 
39  clase Solution1:
 40      DEF canCompleteCircuit (Self, Gas, coste):
 41 es          CUR = 0
 42 es          para I en Rango (LEN (Gas)) :
 43 es              CUR = Gas [I]
 44 es              para J en Rango (I, I + len (Gas)):
 45                  - CUR = costo [J% len (Gas)]
 46 es                  SI CUR < 0:
 47                      PAUSA 
48                  CUR + = Gas [ (j + 1)%len (gas)]
 49              SI CUR> = 0:
 50                  de retorno que
 51 es          el retorno -1
 52 es  "" " 
53 es  la solución II: algoritmo, cumple con dos principios fundamentales:
 54  1. El punto de partida debe satisfacer gas> costo, es imposible arrancar
 55  2. el gas general> costo, o debe ir acabado
 56 es  "" " 
57 es  clase Solución:
 58      DEF canCompleteCircuit (Self, gas, coste):
 59          total = 0
 60          RES = 0
 61 es          CUR = 0
 62 es          para I en Rango (len (Gas)):
 63             cur + = gas [i] - costo [i]
 64              si cur < 0:
 65                  res = i + 1
 66                  total + = cur
 67                  cur = 0
 68          de retorno res si (+ cur total)> = 0 otro -1
 69  si  __name__ == ' __main__ ' :
 70      gas = [1, 2, 3, 4, 5 ]
 71      costo = [3, 4, 5, 1, 2 ]
 72      ans = Solution1 ()
 73      de impresión(Ans.canCompleteCircuit (gas, coste))

 

Supongo que te gusta

Origin www.cnblogs.com/yawenw/p/12466640.html
Recomendado
Clasificación