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;
    }
}