日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和...

發布時間:2024/8/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1005.K次取反后最大化的數組和

每日編程中遇到任何疑問、意見、建議請公眾號留言或直接撩Q474356284(備注每日編程)

給定一個整數數組 A,我們只能用以下方法修改該數組:我們選擇某個個索引?i?并將?A[i]?替換為?-A[i],然后總共重復這個過程?K?次。(我們可以多次選擇同一個索引?i。)

以這種方式修改數組后,返回數組可能的最大和。

示例 1:

輸入:A = [4,2,3], K = 1輸出:5解釋:選擇索引 (1,) ,然后 A 變為 [4,-2,3]。

示例 2:

輸入:A = [3,-1,0,2], K = 3輸出:6解釋:選擇索引 (1, 2, 2) ,然后 A 變為 [3,1,0,2]。

示例 3:

輸入:A = [2,-3,-1,5,-4], K = 2輸出:13解釋:選擇索引 (1, 4) ,然后 A 變為 [2,3,-1,5,4]。

提示:

  • 1 <= A.length <= 10000

  • 1 <= K <= 10000

  • -100 <= A[i] <= 100

  • 解決方法:

    (1)算法的基本思想:

    算法一:

    只要K未減為0,每次都找到數組的最小值,將其取反,最后求和。

    算法二:

    對數組從大至小排序,遍歷數組。

    如果當前數組元素大于0,則加至res

    如果當前數組元素小于0,

    ????????K大于0,則取反,加至res中

    ????????K小于等于0,直接加至res中

    遍歷完數組后對K進行判斷,如果K為奇數,則res需要減去最后一個元素(最小值)的2倍。

    (注:比如4,3,2數組,K = 1,res = 4+3+2,如果K為偶數,我們可以將2取反變成-2,再取反變成2,但是如果K為奇數,我們總要將數組中的其中一個數取反,而在遍歷數組的過程中,我們遇到正的就加起來了,并未取反,所以最后需要減掉最小值的2倍)

    (2)代碼實現:

    class?Solution
    {
    public:
    ????int?largestSumAfterKNegations(vector<int>?&A,?int?K){
    ????????while?(K--)
    ????????{
    ????????????auto?smallest?=?min_element(begin(A),?end(A));
    ????????????(*smallest)?*=?-1;
    ????????}
    ????????return?accumulate(A.begin(),?A.end(),?0);
    ????}
    };class?Solution
    {
    public:
    ????int?largestSumAfterKNegations(vector<int>?&A,?int?K){
    ????????sort(A.begin(),?A.end(),?[](int?a,?int?b)?{?return?abs(a)?>?abs(b);?});

    ????????int?res?=?0;

    ????????for?(int?ele?:?A)
    ????????{
    ????????????if?(ele?>=?0)
    ????????????????res?+=?ele;
    ????????????else
    ????????????????K?>?0???res?+=?-ele,?K--?:?res?+=?ele;
    ????????}
    ????????//?res?=?x?+?abs(s)?==>?what?we?want?is?res?=?x?-?abs(s),?so:
    ????????if?(K?%?2)
    ????????????res?-=?2?*?abs(A.back());

    ????????return?res;
    ????}
    };
    明日預告:中南大學上機題(一)

    大家都很關心考試的難易程度。K老師出題有一個規律,在出題之前,他會隨機寫下一個字符串,只要在這個字符串中能按順序找到E,A,S,Y四個字母,他出題就會比較簡單。你拿到了字符串,請你告訴別人題目難不難吧。

    輸入格式:

    輸入的數據有多組,每組占一行,由一個字符串組成(字符串的長度不超過1000)。

    輸出格式:

    對于每組輸入數據,輸出一行,對應一個要求的答案(題目簡單就輸出easy,難就輸出difficult)

    輸入樣例:

    eAsy
    SEoAtSNY

    輸出樣例:

    difficult
    easy

    總結

    以上是生活随笔為你收集整理的postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。