您的位置:首页 > 文旅 > 旅游 > 西安疫情防控最新政策_设计方案评价_口碑营销的前提及好处有哪些_谷歌seo外链

西安疫情防控最新政策_设计方案评价_口碑营销的前提及好处有哪些_谷歌seo外链

2024/10/12 5:32:52 来源:https://blog.csdn.net/weixin_66400112/article/details/142865775  浏览:    关键词:西安疫情防控最新政策_设计方案评价_口碑营销的前提及好处有哪些_谷歌seo外链
西安疫情防控最新政策_设计方案评价_口碑营销的前提及好处有哪些_谷歌seo外链

 

  1. 如果i可以往后走n步,那就可以绕一圈,返回start即可。
  2. 如果i只能走cnt步(其中cnt<n)到某个点j,那么下一个起点只能从i+cnt+1开始尝试。从中间的某个点k开始也是不可能跨过j点的,因为从i可以到k点,说明i到k可以带大于等于0的油量过来。带了油过来都跨越不了j点,那以k为起点肯定更加跨越不了j点。

代码:


int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize) 
{int i = 0;while (i < gasSize) {int sumOfGas = 0, sumOfCost = 0;int cnt = 0;/*从当前加油站 i 开始,尝试走 cnt 个加油站。使用模运算来处理环形道路的情况。每经过一个加油站,就累加对应的汽油和费用。如果在某个时刻总的费用 sumOfCost 超过了总的汽油 sumOfGas,说明从当前起点 i 到达某个加油站 j 时,汽油不够,那么就中断这一轮尝试。*/while (cnt < gasSize) {int j = (i + cnt) % gasSize;sumOfGas += gas[j];sumOfCost += cost[j];if (sumOfCost > sumOfGas) {break;}cnt++;}/*如果 cnt 等于 gasSize,说明从起点 i 出发的所有加油站都能够成功到达,返回 i。如果不成功,则将 i 更新为 i + cnt + 1,跳过已经尝试过的加油站,继续尝试下一个可能的起点。*/if (cnt == gasSize) {return i;}else {i = i + cnt + 1;}}return -1;
}

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com