public class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { if (gas == null || cost== null) return -1; int diff = 0; int len = gas.length; int start = 0; for (int i = 0; i <= 2 * len - 1; i++) { diff += (gas[i % len] - cost[i % len]); if (diff < 0) { if (i >= len - 1) break; else { diff = 0; start = i + 1; } } else { if (i - start == len) return i % len; } } return -1; } }