博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ - Gas Station
阅读量:6767 次
发布时间:2019-06-26

本文共 1081 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

这道题考察的可能偏向逻辑的思考能力。

最有效的方法是时间复杂度为O(n),空间复杂度为O(1).这种高效算法,参考一个前辈的思想:“My linear solution based on a observation that, if you stops at certain gas station, the gas stations previous to the station you stop must not be a valid starting point. ”

意思是说从某个station开始,如果不能回到这个station,而是停在中间某一个station,那么从start到stop的这些station都不能作为汽车的起点。

下面是AC代码:

/**     *      * @param gas     * @param cost     * @return Return the starting gas station's index if you can travel around     *  the circuit once, otherwise return -1.     */    public int canCompleteCircuit(int[] gas, int[] cost)    {        int left = 0;        int start=0, i;        int N = gas.length;        while(true)        {            i = start;            left = 0;            while(left+gas[i%N]-cost[i%N]>=0)            {                left = left+gas[i%N]-cost[i%N];                i++;                if(i%N == start%N)                    return i%N;            }            if(i>N-1)                return -1;            start = ++i;            }    }

 

---恢复内容结束---

转载于:https://www.cnblogs.com/echoht/p/3690192.html

你可能感兴趣的文章
MySQL常用操作基本操作
查看>>
秒开缓存服务器详细介绍
查看>>
WebGoat题目解答(General~XSS)
查看>>
网页页面 自动刷新的3种代码
查看>>
Android 实现推送功能
查看>>
【framework】spring3-mvc-开篇
查看>>
网络基础
查看>>
Eclipse智能提示及快捷键
查看>>
数据驱动安全架构升级---“花瓶”模型迎来V5.0(一)
查看>>
Linux安装nginx
查看>>
把字符串转换成整数
查看>>
产品入库与倒冲领料不匹配查询
查看>>
我的友情链接
查看>>
一次真实的比特币敲诈***经历
查看>>
Java Mail 发送邮件 接收邮件
查看>>
Cisco 交换机3750密码破解(二)
查看>>
centos 6.3 bind
查看>>
我的友情链接
查看>>
spring security控制权限的几种方法
查看>>
其他消息中间件及场景应用(下2)
查看>>