博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode python Gas Station
阅读量:2429 次
发布时间:2019-05-10

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

注意效率

Gas Station

There are N gas stations along a circular route, where the amount of gas at station i is gas[i].

You have a car with an unlimited gas tank and it costscost[i] of gas to travel from station i to its next station (i+1).
You begin the journey with an empty tank at one of the gas stations. Return the starting gas station’s index if you can
travel around the circuit once, otherwise return -1.
Note:
The solution is guaranteed to be unique.

题意

在一个圆形路径上有N个加油站,在位置 i 上的汽油的数目为gas[i];

你有一个汽车,这个汽车的油箱是无限容量的,它从加油站 i 到 加油站 (i+1)需要耗费的汽油数为cost[i],开始这段旅程的时候,
你的起始状态是在加油站中的一个,油箱为空的.
若一次性完成整个的圆形路途,返回你的其实加油站的序号,若不能完成整个路途,返回-1.
注意:
解决方案保证是唯一的.

思路

想通两点,第一,如果总存储油量大于等于总消耗油量,那么这个问题一定是有解的。第二,怎样找到这个出发点,可设变量total和变量start,当total为负时,total归零,并改变start的值。

python实现

class Solution:    def canCompleteCircuit(self, gas, cost):        if sum(gas) < sum(cost):            return -1        start = -1        total = 0        for i in range(len(gas)):            total += (gas[i] - cost[i])            if total < 0:                total = 0                start = i+1        return start

转载地址:http://lejmb.baihongyu.com/

你可能感兴趣的文章
Redis应用实战---商品购买相关性分析
查看>>
链表算法面试题---链表
查看>>
基础算法面试题---如何用栈实现队列
查看>>
基础算法面试题---如何用队列实现栈(1)
查看>>
基础算法面试题---如何用队列实现栈(2)
查看>>
基础算法面试题---如何数组实现栈和队列
查看>>
基础算法面试题---获取栈的最小值
查看>>
基础算法面试题---滑动窗口的最大值
查看>>
API接口安全性设计以及各参数的作用
查看>>
《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
查看>>
《Netty权威指南 第2版》学习笔记(6)--- HTTP协议开发应用
查看>>
链表算法面试题---删除链表中的重复元素II
查看>>
基础算法面试题---合并有序链表
查看>>
链表算法面试题---从链表中删除给定的节点
查看>>
链表算法面试题---删除链表倒数第N个节点
查看>>
链表算法面试题---环形链表
查看>>
链表算法面试题---环形链表II
查看>>
链表算法面试题---删除链表节点(给的不是头节点)
查看>>
链表算法面试题---合并两个链表
查看>>
链表算法面试题---旋转链表
查看>>