麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Leetcode 134. Gas Station

2019-11-14 09:15:57
字體:
供稿:網(wǎng)友

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 costs cost[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.

s思路: 1. n個(gè)加油站。簡單粗暴的方法一定是:每個(gè)加油站為起點(diǎn),然后遍歷一圈,那么復(fù)雜度就是o(n^2)。顯然,這道題不是讓我們給出這樣的答案! 2. 復(fù)雜度至少應(yīng)該是o(nlgn),最好的是o(n)。 3. 想了半天,剛開始是想從左往右遍歷,在每個(gè)位置處gas[i]-cost[i]得到剩余的油,如果為負(fù)值,說明需要從左邊挪一些油;為正值,則說明這個(gè)汽油站可以為后面的汽油站貢獻(xiàn)一些油。換一種說法:油的轉(zhuǎn)移有方向性,只允許從左邊往右邊轉(zhuǎn)移。這樣的題,油的轉(zhuǎn)移從左往右,那么我們從右往左遍歷的話,遇到負(fù)值,我們知道肯定由前面轉(zhuǎn)移過來,所以把這個(gè)負(fù)值累加到前面去,如果在某個(gè)位置的累加值大于0,則說明從這個(gè)位置其可以保證后面的都順利到達(dá),但是這個(gè)站前面的還不一定,所以,需要繼續(xù)往前累加,找到最大的累加值的站肯定就是可以作為起始點(diǎn)了!

class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { // int mxsum=0,sum=0,pos=0; for(int i=cost.size()-1;i>=0;i--){ sum+=gas[i]-cost[i]; if(sum>mxsum){ pos=i; mxsum=sum; } } return sum>=0?pos:-1; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲第九十九页 | 国产精品午夜小视频观看 | 亚洲成人福利在线 | 日本精品视频一区二区三区四区 | 国产一区二区三区在线免费 | 国产美女三级做爰 | 黄色大片www | 嫩草影院在线观看网站成人 | 中国老女人一级毛片视频 | 国产一级毛片av | 国产在线久 | 视频一区二区视频 | 午夜生活理论片 | 国产亚洲精品久久午夜玫瑰园 | 国产亚洲精品久久久久久久久久 | av电影在线观看网址 | 免费a级毛片大学生免费观看 | 中文字幕精品在线播放 | 久久蜜桃香蕉精品一区二区三区 | 欧美日本综合 | 色屁屁xxxxⅹ免费视频 | 毛片免费观看视频 | 欧美日韩a∨毛片一区 | 日本a级一区 | 成年性羞羞视频免费观看无限 | 成人性视频免费网站下载软件 | 欧美日韩一区,二区,三区,久久精品 | 爱高潮www亚洲精品 国产精品一区自拍 | 日本欧美一区二区三区在线播 | 草久影视| 国产精品久久久久久影院8一贰佰 | 在线观看中文字幕av | 奇米888一区二区三区 | 性欧美大战久久久久久久免费观看 | 手机av在线电影 | 极品五月天| 国产三级午夜理伦三级 | 性生活香蕉视频 | 精品一区二区在线播放 | 中国hdxxxx护士爽在线观看 | 在线小视频国产 |