classSolution{public:intcanCompleteCircuit(vector<int>&gas,vector<int>&cost){constintgasses=accumulate(begin(gas),end(gas),0);constintcosts=accumulate(begin(cost),end(cost),0);if(gasses-costs<0)return-1;intans=0;intsum=0;// Try to start from each indexfor(inti=0;i<gas.size();++i){sum+=gas[i]-cost[i];if(sum<0){sum=0;ans=i+1;// Start from next index}}returnans;}};
classSolution{publicintcanCompleteCircuit(int[]gas,int[]cost){finalintgasses=Arrays.stream(gas).sum();finalintcosts=Arrays.stream(cost).sum();if(gasses-costs<0)return-1;intans=0;intsum=0;// Try to start from each indexfor(inti=0;i<gas.length;++i){sum+=gas[i]-cost[i];if(sum<0){sum=0;ans=i+1;// Start from next index}}returnans;}}