lc-go/solutions/1/q134/solution.go
2025-12-23 18:39:11 +09:00

23 lines
468 B
Go

package q134
func canCompleteCircuit(gas []int, cost []int) int {
invalidated := 0
start, current, tank := 0, 0, 0
for {
tank = tank + gas[current] - cost[current]
current = (current + 1) % len(gas)
if tank < 0 {
invalidated += (current - start + len(gas)) % len(gas)
if invalidated >= len(gas) || current == start {
return -1
}
start = current
tank = 0
} else if current == start {
return start
}
}
}
var _ = canCompleteCircuit