力扣题库刷题笔记134-加油站

文章讨论了一个使用Python解决的加油站问题,当数据量大时导致代码超时。作者比较了个人代码(对gas和cost数组重新排序)与题解思路(不重新排序,仅从特定下标开始检查)。关键在于确定在sum(gas)>sum(cost)时,通过调整起始加油站避免数组排序以提高效率。
摘要由CSDN通过智能技术生成

1、题目如下:

2、个人Python代码实现(当数据量足够大时会超时):

        对于第10-11行代码,主要实现的是对于不同下标作为起始加油站时,对于gas和cost重新排序:

        对于数组排序还有另一种方式是:

3、基于题解思路的个人Python代码实现

        个人的代码逻辑其实没有问题,主要是数据量过大会超时。相较于题解的思路,差异其实在对于数组排序的地方。我的思路是循环找到起始加油站下标,然后将gas和cost重新排序;而题解的思路相同的地方在于找到下标,差异在于他没有进行数组重新排序,直接只从下标往后看,不管下标前的数据。

         这里可以再次分析一下代码思路:

        a、首先sum(gas) >  sum(cost)代表一定有解

        b、如果第0个加油站的油小于到第一个加油站的油,那么从第1个加油站作为起始点。这里由于一定有解,所以只需要判断第一个加油站开始,到最后一个加油站油够用就行了,不需要再关心第0个加油站,以此类推。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值