8.19 gasStation

2016-08-21  本文已影响8人  陈十十

    int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
        int n = cost.size(), sum;
        for (int start=0; start<n;) {
            if (gas[start]-cost[start] < 0) {
                ++start;
                continue;
            } 
            sum = 0;
            int j=start;
            for (; j<start+n; ++j) {
              sum += gas[j%n]-cost[j%n];
              if (sum<0) break;
            }
            if (j==start+n) return start;
            else start = j;
        }
        return -1;//should never be
    }

诶居然想这么久,想到要把gas[i]-cost[i],而且正确的starti此数不能是负的。然而没考虑好然后怎么才能从O(n^2)回到O(n)。

上一篇 下一篇

猜你喜欢

热点阅读