国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode】134. 加油站 - 貪心算法

這篇具有很好參考價值的文章主要介紹了【LeetCode】134. 加油站 - 貪心算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

134. 加油站

貪心思想: 因為本題用到了貪心算法所以先來了解一下「貪心算法」的問題需要滿足的條件:

  • 最優(yōu)子結(jié)構(gòu):規(guī)模較大的問題的解由規(guī)模較小的子問題的解組成,規(guī)模較大的問題的解只由其中一個規(guī)模較小的子問題的解決定;
  • 無后效性:后面階段的求解不會修改前面階段已經(jīng)計算好的結(jié)果;
  • 貪心選擇性質(zhì):從局部最優(yōu)解可以得到全局最優(yōu)解。

綜上可得:貪心算法就是做出當前狀態(tài)下的最優(yōu)選擇認為就可以解決問題。

在本題中,要找到一個位置能夠繞行一周回來。

“假設從x加油站出發(fā)經(jīng)過z加油站最遠能到達y加油站,那么從z加油站直接出發(fā),不可能到達y下一個加油站。因為從x出發(fā)到z加油站時肯定 有存儲的油 或者 到z的時候油已經(jīng)沒了,加上z加油站能夠加上的油,這都到不了y的下一站。而直接從z出發(fā)剛開始是沒有存儲的油的,所以更不可能到達y的下一站?!?mark hidden color="red">文章來源:http://www.zghlxwxcb.cn/news/detail-663531.html

也就是說,我們首先檢查第 0 個加油站,并試圖判斷能否環(huán)繞一周;如果不能,就從第一個無法到達的加油站開始繼續(xù)檢查。文章來源地址http://www.zghlxwxcb.cn/news/detail-663531.html

class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int length = gas.length;
        int index = 0;
        // 這里不用for循環(huán)是因為,我們會使用跳過一些下標。所以,使用while是最好的
        // 從頭到尾遍歷每個加油站,并且檢查以該加油站為起點,能否行駛一周
        while (index < length) {
            // 當前index加油站的總汽油
            int sumOfGas = 0;
            // 當前index加油站的總花費汽油
            int sumOfCost = 0;
            // 當前index加油站最遠能夠走的最遠步數(shù)
            int count = 0;
            // 判斷從當前index下標出發(fā)能否環(huán)形一周
            while (count < length) {
                // 當前index加油站組成環(huán)形加油站
                // 環(huán)形加油站下標
                int currentIndex = (index + count) % length;
                sumOfCost += cost[currentIndex];
                sumOfGas += gas[currentIndex];
                // 如果這個環(huán)形下標站點發(fā)現(xiàn)油不夠了
                if (sumOfCost > sumOfGas) {
                	// 當前index加油站組成環(huán)形加油站肯定是不滿足題意的,跳出循環(huán)
                    break;
                }
                // 最遠的步數(shù)+1
                count++;
            }
            // 當前index能夠環(huán)形一周
            if (count == length) {
                // 返回
                return index;
            } else {
                // 就從無法到達的加油站開始繼續(xù)檢查。
                index = index + count + 1;
            }
        }
        // 所有加油站作為起點都不滿足
        return -1;
    }
}

到了這里,關于【LeetCode】134. 加油站 - 貪心算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【貪心算法Part03】| 1005.K次取反后最大化的數(shù)組和、134.加油站、135.分發(fā)糖果

    【貪心算法Part03】| 1005.K次取反后最大化的數(shù)組和、134.加油站、135.分發(fā)糖果

    目錄 ??LeetCode1005.K次取反后最大化的數(shù)組和? ??LeetCode134.加油站 ??LeetCode135.分發(fā)糖果 鏈接:1005.K次取反后最大化的數(shù)組和 給你一個整數(shù)數(shù)組? nums ?和一個整數(shù)? k ?,按以下方法修改該數(shù)組: 選擇某個下標? i ?并將? nums[i] ?替換為? -nums[i] ?。 重復這個過程恰好? k ?次

    2024年02月16日
    瀏覽(25)
  • LeetCode刷題筆記【25】:貪心算法專題-3(K次取反后最大化的數(shù)組和、加油站、分發(fā)糖果)

    LeetCode刷題筆記【25】:貪心算法專題-3(K次取反后最大化的數(shù)組和、加油站、分發(fā)糖果)

    參考前文 參考文章: LeetCode刷題筆記【23】:貪心算法專題-1(分發(fā)餅干、擺動序列、最大子序和) LeetCode刷題筆記【24】:貪心算法專題-2(買賣股票的最佳時機II、跳躍游戲、跳躍游戲II) LeetCode鏈接:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/ 首先 sor

    2024年02月09日
    瀏覽(93)
  • Day34 貪心算法 part03 1005. K 次取反后最大化的數(shù)組和 134. 加油站 135. 分發(fā)糖果

    思路 第一步,從前向后遍歷,遇到負數(shù)將其變?yōu)檎龜?shù),同時K– 第二步:如果K還大于0,那么反復轉(zhuǎn)變數(shù)值最小的元素,將K用完 第三步:求和 方法一(暴力) leetcode超時(35/40) 方法二(貪心)

    2024年01月19日
    瀏覽(31)
  • 第八章 貪心算法 part03 1005.K次取反后最大化的數(shù)組和 134. 加油站 135. 分發(fā)糖果 (day34補)

    第八章 貪心算法 part03 1005.K次取反后最大化的數(shù)組和 134. 加油站 135. 分發(fā)糖果 (day34補)

    給你一個整數(shù)數(shù)組 nums 和一個整數(shù) k ,按以下方法修改該數(shù)組: 選擇某個下標 i ?并將 nums[i] 替換為 -nums[i] 。 重復這個過程恰好 k 次??梢远啻芜x擇同一個下標 i 。 以這種方式修改數(shù)組后,返回數(shù)組 可能的最大和 。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -100

    2024年02月11日
    瀏覽(23)
  • 加油站【貪心算法】

    加油站【貪心算法】

    加油站 在一條環(huán)路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i+1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發(fā),開始時油箱為空。 給定兩個整數(shù)數(shù)組 gas 和 cost ,如果你可以按順序繞環(huán)路行

    2024年02月11日
    瀏覽(23)
  • 134. 加油站 Python

    在一條環(huán)路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i+1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發(fā),開始時油箱為空。 給定兩個整數(shù)數(shù)組 gas 和 cost ,如果你可以繞環(huán)路行駛一周,則返

    2024年02月04日
    瀏覽(20)
  • DAY38:貪心算法(五)K次取反后最大數(shù)組和+加油站

    DAY38:貪心算法(五)K次取反后最大數(shù)組和+加油站

    本題重點是邏輯問題,同時復習static和sort的自定義操作與時間復雜度 給你一個整數(shù)數(shù)組 nums 和一個整數(shù) k ,按以下方法修改該數(shù)組: 選擇某個下標 i 并將 nums[i] 替換為 -nums[i] 。 重復這個過程恰好 k 次??梢远啻芜x擇同一個下標 i 。 以這種方式修改數(shù)組后,返回數(shù)組 可能的

    2024年02月13日
    瀏覽(26)
  • 力扣算法刷題Day34|貪心:K次取反后最大化的數(shù)組和 加油站 分發(fā)糖果

    力扣題目:# 1005.K次取反后最大化的數(shù)組和? 刷題時長:10min 解題方法:貪心 復雜度分析 時間O(n) 空間O(1) 問題總結(jié) 無 本題收獲 貪心思路:兩次貪心 在包含正負無序的整數(shù)數(shù)組中,如何轉(zhuǎn)變K次正負,讓數(shù)組和達到最大 局部最優(yōu):讓絕對值大的負數(shù)變?yōu)檎龜?shù),當前數(shù)值達到

    2024年02月09日
    瀏覽(39)
  • C++力扣題目1005--K次取反后最大化的數(shù)組和 134--加油站 135--分發(fā)糖果

    C++力扣題目1005--K次取反后最大化的數(shù)組和 134--加油站 135--分發(fā)糖果

    力扣題目鏈接(opens new window) 給定一個整數(shù)數(shù)組 A,我們只能用以下方法修改該數(shù)組:我們選擇某個索引 i?并將 A[i] 替換為 -A[i],然后總共重復這個過程 K 次。(我們可以多次選擇同一個索引 i。) 以這種方式修改數(shù)組后,返回數(shù)組可能的最大和。 示例 1: 輸入:A = [4,2,3],

    2024年01月21日
    瀏覽(24)
  • 加油站抽煙煙火智能識別算法

    加油站抽煙煙火智能識別算法

    加油站抽煙煙火智能識別系統(tǒng)通過yolo+opencv網(wǎng)絡模型圖像識別分析技術,加油站抽煙煙火智能識別算法識別出抽煙和燃放煙火的情況,并發(fā)出預警信號以提醒相關人員,減少火災風險。OpenCV基于C++實現(xiàn),同時提供python, Ruby, Matlab等語言的接口。OpenCV-Python是OpenCV的Python API,結(jié)合

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包