leetcode gas station

来源:互联网 发布:淘宝卖三无产品犯法吗 编辑:程序博客网 时间:2024/05/23 22:18
class Solution {public:    inline int transId(const int id, const int size){        return id % size;    }    int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {        int size = gas.size();        int idx = 0;        int left = 0;        for(; idx < size; ++idx){            left += gas[idx] - cost[idx];        }        if(left < 0){            return -1;        }        idx = 0;        int cntstation = 0;        left = 0;        int rec = 0;        for(; idx < 2 * size; ++idx){            int tmpidx = transId(idx, size);            left += gas[tmpidx] - cost[tmpidx];            if(left >= 0){                ++cntstation;                if(cntstation >= size){                    rec = rec % size;                    return rec;                }            }            else{                while(transId(rec, size) != transId(tmpidx + 1, size) && left < 0){                    left -= gas[transId(rec, size)] - cost[transId(rec, size)];                    rec++;                    rec %= size;                }            }        }    }};

借鉴了minimum window的思路~

0 0
原创粉丝点击