网站内页怎样做优化,1卡二卡三卡四卡精品hd,网络架构的基本特征是什么,南昌寻南昌网站设计题目描述#xff1a; 在一条环路上有 n 个加油站#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发#xff0c;开始时油箱为空。 给定两个整数… 题目描述 在一条环路上有 n 个加油站其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发开始时油箱为空。 给定两个整数数组 gas 和 cost 如果你可以按顺序绕环路行驶一周则返回出发时加油站的编号否则返回 -1 。如果存在解则 保证 它是 唯一 的。 解题思路 需要先计算出 gas[]和 cost[] 对应元素的差diff[]表示走到下一个加油站时还剩的油量需要三个变量curSum统计当前剩余油量totalSum统计diff[]总的油量如果小于0说明不管从哪开始都不可能跑完一圈直接返回-1即可start记录起始下标当 curSum 0 就更新到下一个从下一个继续开始。 题目链接 代码实现 class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int len gas.length;int[] diff new int[len];// gas[i]-cost[i]的值表示剩余油量int curSum 0;// 表示当前的总剩余油量int totalSum 0;// diff[]的总的剩余油量如果 totalSum0表示不管从哪开始都不可能跑完一圈int start 0;// 表示起始位置for (int i 0; i len; i) {diff[i] gas[i]-cost[i];totalSum diff[i];}if (totalSum 0){return -1;}for (int i 0; i len; i) {curSum diff[i];if (curSum 0){// 表示 i 之前的位置和小于0不适合作为起始位置start i1;// 更新起始位置curSum 0;// 清 0}}return start;}
}