力扣134. 加油站
发布时间:2024年01月02日
迭代
- 思路:
- 暴力模拟迭代;
- 假设从第 idx 个加油站开始,使用一个变量对行驶的加油站个数计数,如果最后行驶的个数为 size,则是可行的;
- 否则,行驶过的加油站都不可行;(加快更新 idx 重试)
- 是否可行,通过累计获取的汽油容量与消耗的容量进行比较,Sum(gas[i]) > Sum(cost[i]);
class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int size = gas.size();
int idx = 0;
while (idx < size) {
int sumOfGas = 0;
int sumOfCost = 0;
int cnt = 0;
while (cnt < size) {
int j = (idx + cnt) % size;
sumOfGas += gas[j];
sumOfCost += cost[j];
if (sumOfCost > sumOfGas) {
break;
}
cnt++;
}
if (cnt == size) {
return idx;
} else {
idx = idx + cnt + 1;
}
}
return -1;
}
};
文章来源:https://blog.csdn.net/N_BenBird/article/details/135330514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!