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

【隨想錄】Day34—第八章 貪心算法 part03

這篇具有很好參考價(jià)值的文章主要介紹了【隨想錄】Day34—第八章 貪心算法 part03。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


題目1: 1005. K 次取反后最大化的數(shù)組和

  • 題目鏈接:1005. K 次取反后最大化的數(shù)組和

1- 思路

貪心思路

    1. 先對(duì)數(shù)組中的元素進(jìn)行排序
    1. 遍歷數(shù)組,如果 當(dāng)前遍歷的位置值 < 0 && k>0 直接變號(hào),之后對(duì) k 進(jìn)行 --
    1. 如果不小于 0,此時(shí)需要先排序,判斷 k 是否為奇數(shù),如果是奇數(shù)直接對(duì)最小位進(jìn)行取反
    1. 最終遍歷數(shù)組求和

2- 題解

? K 次取反后最大化的數(shù)組和 ——題解思路

【隨想錄】Day34—第八章 貪心算法 part03,算法,貪心算法,算法

class Solution {
    public int largestSumAfterKNegations(int[] nums, int k) {
        Arrays.sort(nums);
        for(int i = 0 ; i < nums.length;i++){
            if(nums[i]<0 && k > 0){
                nums[i] = -nums[i];
                k--;
            }
        }
        Arrays.sort(nums);
        if(k%2==1){
            nums[0] = -nums[0];
        }
        
        int res = 0;
        for(int i:nums){
            res+=i;
        }
        return res;
    }
}

題目2: 134. 加油站

  • 題目鏈接:134. 加油站

1- 思路

貪心:每到一個(gè)站點(diǎn)后,此時(shí)是有補(bǔ)充有消耗的,關(guān)注點(diǎn):當(dāng)前還剩余多少油。
貪心思路

  • ① 求兩個(gè)數(shù)組的差值,記錄為curSum
  • ② 遍歷 gas 數(shù)組
    • 如果 totalSum一直大于零可以直接遍歷
    • 如果 totalSum 出現(xiàn)小于 0 的情況,此時(shí) 重置和從下一個(gè)起點(diǎn)為開始點(diǎn)進(jìn)行遍歷

代碼實(shí)現(xiàn)

  • 1. 數(shù)據(jù)結(jié)構(gòu)
    • curSum:統(tǒng)計(jì)從頭開始每一站的剩余油量和
    • totalSum:對(duì)每站的剩余油量進(jìn)行求和
    • satrt:記錄每次遍歷的起始站點(diǎn)下標(biāo)
  • 2. 遍歷 gas 數(shù)組
    • 此時(shí)如果 curSum > 0 此時(shí) 繼續(xù)遍歷,同時(shí)利用 totalSum記錄和
    • 此時(shí)如果 curSum < 0 此時(shí) 重置 satrttotalSum
    • 最終如果 totalSum<0 則直接返回 -1 表示不能到達(dá)

2- 題解

? 加油站 ——題解思路

【隨想錄】Day34—第八章 貪心算法 part03,算法,貪心算法,算法

class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        int curSum = 0 ;
        int totalSum = 0;
        int start = 0;
        for(int i = 0 ; i < gas.length;i++){
            curSum += gas[i] - cost[i];
            totalSum += gas[i] - cost[i];
            if(curSum<0){
                curSum = 0;
                start = i+1;
            }
        }
        if(totalSum<0) return -1;
        return start;
    }
}

題目3: 135. 分發(fā)糖果

  • 題目鏈接:135. 分發(fā)糖果

1- 思路

貪心思路

  • ① 初始化分發(fā)情況數(shù)組
  • ② 從前向后遍歷,此時(shí)判斷右邊比左邊大的情況
  • ③ 從后向前遍歷,此時(shí)判斷左邊比右邊大的情況
  • 難點(diǎn):從前往后遍歷 先對(duì) 分發(fā)數(shù)組 初始化,此后 從后向前 遍歷時(shí),大的那個(gè)位置的值應(yīng)該為 步驟② 和 步驟③中元素的最大值。

2- 題解

? 分發(fā)糖果 ——題解思路

【隨想錄】Day34—第八章 貪心算法 part03,算法,貪心算法,算法文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-859669.html

class Solution {
    public int candy(int[] ratings) {
        int[] candies = new int[ratings.length];
        candies[0] = 1;

        for (int i = 1; i < ratings.length; i++) {
            if (ratings[i] > ratings[i - 1]) {
                candies[i] = candies[i - 1] + 1;
            }else{
                candies[i] = 1;
            }
        }

        for(int j = ratings.length-1;j>=1;j--){
            if(ratings[j]<ratings[j-1]){
                candies[j-1] = Math.max(candies[j]+1,candies[j-1]);
            }
        }

        int res = 0;
        for(int r:candies){
            res+=r;
        }
        return res;
    }
}

到了這里,關(guān)于【隨想錄】Day34—第八章 貪心算法 part03的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 代碼隨想錄——貪心算法

    代碼隨想錄——貪心算法

    代碼隨想錄——回溯 代碼隨想錄——貪心算法 分發(fā)餅干 鏈接:https://leetcode.cn/problems/assign-cookies/description/ 這道題我自己一開始的想法是從大到小遍歷孩子數(shù)組,對(duì)于每個(gè)元素從大到小遍歷餅干數(shù)組,滿足則total+1,并且該元素置0防止被再次使用。這樣雖然是可以的,但時(shí)間復(fù)

    2024年02月22日
    瀏覽(92)
  • 代碼隨想錄day24 開啟回溯算法

    感覺回溯算法其實(shí)和遞歸很像,也是用遞歸的做法,也有三部曲,但又不太一樣的地方是遞歸中類似二叉樹,只有縱向遍歷(一層層往下遍歷,沒有橫向遍歷),而回溯算法中多的for循環(huán)就是橫向遍歷,說(shuō)實(shí)話這一點(diǎn)我沒有理解的太深,只是知道它類似于兩個(gè)for循環(huán)中的第一

    2024年01月16日
    瀏覽(108)
  • 代碼隨想錄算法訓(xùn)練day4 | 鏈表

    目錄 24. 兩兩交換鏈表節(jié)點(diǎn) 19. 刪除鏈表倒數(shù)第n個(gè)節(jié)點(diǎn) 方法一:普通寫法 方法二:雙指針法 面試題:找鏈表相交節(jié)點(diǎn) 142. 判斷環(huán)形鏈表 虛擬頭節(jié)點(diǎn)的本質(zhì)意義在于減少了特殊情況的處理。不用判斷該節(jié)點(diǎn)是否在鏈表的第一位。 定義快慢兩個(gè)指針。 fast先走n步,再讓fast和s

    2024年02月04日
    瀏覽(90)
  • 代碼隨想錄算法訓(xùn)練DAY25|回溯2

    代碼隨想錄算法訓(xùn)練DAY25|回溯2

    力扣題目鏈接 找出所有相加之和為 n 的 k 個(gè)數(shù)的組合。組合中只允許含有 1 - 9 的正整數(shù),并且每種組合中不存在重復(fù)的數(shù)字。 說(shuō)明: 所有數(shù)字都是正整數(shù)。 解集不能包含重復(fù)的組合。 示例 1: 輸入: k = 3, n = 7 輸出: [[1,2,4]] 示例 2: 輸入: k = 3, n = 9 輸出: [[1,2,6], [1,3,5], [2,3,4]

    2024年01月22日
    瀏覽(91)
  • 代碼隨想錄算法訓(xùn)練DAY27|回溯3

    代碼隨想錄算法訓(xùn)練DAY27|回溯3

    力扣題目鏈接 給定一個(gè)無(wú)重復(fù)元素的數(shù)組 candidates 和一個(gè)目標(biāo)數(shù) target ,找出 candidates 中所有可以使數(shù)字和為 target 的組合。 candidates 中的數(shù)字可以無(wú)限制重復(fù)被選取。 說(shuō)明: 所有數(shù)字(包括 target)都是正整數(shù)。 解集不能包含重復(fù)的組合。 示例 1: 輸入:candidates = [2,3,6,

    2024年01月23日
    瀏覽(92)
  • 代碼隨想錄算法練習(xí)Day1:二分查找

    代碼隨想錄算法練習(xí)Day1:二分查找

    題目鏈接:704. 二分查找 卡哥視頻講解:手把手帶你撕出正確的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找 二分法概述: 二分法(Binary Search)是一種在有序數(shù)組或列表中查找目標(biāo)元素的算法。 二分法使用前提 : 有序數(shù)組或列表 :二分法要求在查找的數(shù)據(jù)結(jié)

    2024年04月23日
    瀏覽(95)
  • 代碼隨想錄Day20 回溯算法 LeetCode77 組合問題

    代碼隨想錄Day20 回溯算法 LeetCode77 組合問題

    以下內(nèi)容更詳細(xì)解釋來(lái)自于:代碼隨想錄 (programmercarl.com) 回溯法也叫回溯搜索法,是搜索法的一種,我們之前在二叉樹中也經(jīng)常使用到回溯來(lái)解決問題,其實(shí) 有遞歸就有回溯 ,有的時(shí)候回溯隱藏在遞歸之下,我們不容易發(fā)覺,今天我們來(lái)詳細(xì)介紹一下什么是回溯,它能解決哪些問題.

    2024年02月08日
    瀏覽(93)
  • 代碼隨想錄打卡第34天

    2024年02月11日
    瀏覽(21)
  • 【一天三道算法題】代碼隨想錄——Day15(困難題只有一道)

    一. 滑動(dòng)窗口最大值 題目鏈接:力扣 思路: ????????這道題我認(rèn)為最難的是編程語(yǔ)言本身并沒有一個(gè)可以讓你完全直接開始使用的一個(gè)數(shù)據(jù)結(jié)構(gòu),也就是說(shuō)要自己造輪子。并且為了盡可能的減少維護(hù)元素的個(gè)數(shù)我們要學(xué)會(huì)去在能實(shí)現(xiàn)功能的前提下,維護(hù)盡可能少的數(shù)組元

    2024年02月15日
    瀏覽(93)
  • 【代碼隨想錄python筆記整理】第八課 · 奇怪的信

    【代碼隨想錄python筆記整理】第八課 · 奇怪的信

    前言: 本筆記僅僅只是對(duì)內(nèi)容的整理和自行消化,并不是完整內(nèi)容,如有侵權(quán),聯(lián)系立刪。 ? ? ? ?在之前的算術(shù)運(yùn)算中,我們遇到了一種曾經(jīng)不常見的運(yùn)算——取模。接下來(lái),我們就通過(guò)這道題目來(lái)理解一下取模的作用。 ? ? ? ?對(duì)于這道題目我們其實(shí)有兩種角度。第一種

    2024年02月22日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包