示例代码 登录后复制 class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int curSum=0,totalSum=0,len=gas.size(),rest=0,start=0; //局部最优:当前累加rest[i]的和curSum一旦小于0,其实位置至少要是i+1,因为从i之间开始一定不行 //全局最优:找到可以跑一圈的起始位置 for(int i=0;i<len;i++){ rest=gas[i]-cost[i]; curSum+=rest; totalSum+=rest; if(curSum<0){ curSum=0; start=i+1; } } if(totalSum<0){ return -1; } return start; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22. 效果展示 原创作者: u_15305087 转载于: https://blog.51cto.com/u_15305087/11651309