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

K 次取反后最大化的數(shù)組和【貪心算法】

這篇具有很好參考價值的文章主要介紹了K 次取反后最大化的數(shù)組和【貪心算法】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

給你一個整數(shù)數(shù)組 nums 和一個整數(shù) k ,按以下方法修改該數(shù)組:
選擇某個下標 i 并將 nums[i] 替換為 -nums[i] 。
重復(fù)這個過程恰好 k 次??梢远啻芜x擇同一個下標 i 。

以這種方式修改數(shù)組后,返回數(shù)組 可能的最大和 。
K 次取反后最大化的數(shù)組和【貪心算法】,貪心算法,算法,java

class Solution {
    public int largestSumAfterKNegations(int[] nums, int k) {
        //首先進行按絕對值排序(需要熟悉用法)
        nums = IntStream.of(nums)
		     .boxed()
		     .sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1))
		     .mapToInt(Integer::intValue).toArray();

        int len = nums.length;

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < 0 && k > 0) {//對其中的絕對值較大的負數(shù)進行反轉(zhuǎn),變?yōu)檎龜?shù)
                nums[i] = - nums[i];
                k--;
            }
        }
        if (k % 2 == 1) {//如果K仍有剩余,取絕對值最小的一個元素進行反復(fù)取反;另外注意:k為偶數(shù)兩次取反抵消,無需操作,k為奇數(shù),相當于取反依次
            nums[len - 1] = - nums[len - 1];
        }
        return Arrays.stream(nums).sum();
    }
} 

關(guān)于 nums = IntStream.of(nums).boxed().sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)).mapToInt(Integer::intValue).toArray(); 這行代碼,讓我們一步一步解釋它的作用:

  1. IntStream.of(nums):將原始的 int 數(shù)組轉(zhuǎn)換為 IntStream,這是Java 8中的一個流。這是為了使我們能夠在流上進行后續(xù)操作。

  2. .boxed():將 IntStream 中的每個元素裝箱為 Integer 對象。這是因為后續(xù)的排序操作需要使用比較器,而比較器需要處理對象。

  3. .sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)):對流中的元素進行排序。這里使用了一個比較器,該比較器會按照元素的絕對值從大到小進行排序。

    • (o1, o2) -> Math.abs(o2) - Math.abs(o1) 是一個Lambda表達式,它描述了如何比較兩個元素 o1o2。
    • Math.abs(o2) - Math.abs(o1) 計算的是兩個元素絕對值的差值,這用于指示排序順序。
  4. .mapToInt(Integer::intValue):將排序后的 Integer 對象流轉(zhuǎn)換回 IntStream

  5. .toArray():將排序后的 IntStream 轉(zhuǎn)換回 int 數(shù)組。

這行代碼的最終作用是:將原始的 int 數(shù)組按絕對值從大到小排序后,以 int 數(shù)組的形式返回。這個排序后的數(shù)組將在后續(xù)的處理中被使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-679413.html

到了這里,關(guān)于K 次取反后最大化的數(shù)組和【貪心算法】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

    2024年02月09日
    瀏覽(39)
  • 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,那么反復(fù)轉(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] 。 重復(fù)這個過程恰好 k 次??梢远啻芜x擇同一個下標 i 。 以這種方式修改數(shù)組后,返回數(shù)組 可能的最大和 。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -100

    2024年02月11日
    瀏覽(23)
  • 力扣 1005. K 次取反后最大化的數(shù)組和

    力扣 1005. K 次取反后最大化的數(shù)組和

    題目來源:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/description/ C++題解1:最直接的想法就是負的變正的,如果負的元素數(shù)量小于k,就挑選絕對值大的負數(shù)變正;如果負的元素數(shù)量大于k,那么還需要根據(jù)剩下的k(待變換數(shù))的奇偶性來判斷,偶數(shù)就不用管了,奇數(shù)

    2024年02月16日
    瀏覽(36)
  • 【Leetcode60天帶刷】day33回溯算法——1005.K次取反后最大化的數(shù)組和 134. 加油站 135. 分發(fā)糖果

    【Leetcode60天帶刷】day33回溯算法——1005.K次取反后最大化的數(shù)組和 134. 加油站 135. 分發(fā)糖果

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

    2024年02月11日
    瀏覽(22)
  • 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],然后總共重復(fù)這個過程 K 次。(我們可以多次選擇同一個索引 i。) 以這種方式修改數(shù)組后,返回數(shù)組可能的最大和。 示例 1: 輸入:A = [4,2,3],

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

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

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

    2024年02月13日
    瀏覽(26)
  • 期望最大化(EM)算法:從理論到實戰(zhàn)全解析

    期望最大化(EM)算法:從理論到實戰(zhàn)全解析

    本文深入探討了期望最大化(EM)算法的原理、數(shù)學基礎(chǔ)和應(yīng)用。通過詳盡的定義和具體例子,文章闡釋了EM算法在高斯混合模型(GMM)中的應(yīng)用,并通過Python和PyTorch代碼實現(xiàn)進行了實戰(zhàn)演示。 關(guān)注TechLead,分享AI全維度知識。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗、

    2024年02月08日
    瀏覽(30)
  • 【算法】Maximize Grid Happiness 最大化網(wǎng)格幸福感 動態(tài)規(guī)劃

    給你四個整數(shù) m、n、introvertsCount 和 extrovertsCount 。有一個 m x n 網(wǎng)格,和兩種類型的人:內(nèi)向的人和外向的人??偣灿?introvertsCount 個內(nèi)向的人和 extrovertsCount 個外向的人。 請你決定網(wǎng)格中應(yīng)當居住多少人,并為每個人分配一個網(wǎng)格單元。 注意,不必 讓所有人都生活在網(wǎng)格中

    2024年02月11日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包