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))