アレイパーティション

アレイパーティション

配列分割の難しさ:合格率:74%提出数:134件名出典:件名説明提出記録の説明

2n個の整数の配列が与えられた場合、タスクはこれらの整数を(a1、b1)、(a2、b2)、...、(an、bn)などのn個のグループに分割することです。そして、min(ai、bi)の合計を1からnまでできるだけ大きくします。

nは正の整数で、範囲
は[1、10000]です。配列内の要素の範囲は[-10000、10000]です。

例1:

入力:[1,4,3,2]
出力:4
説明:nは2であり、最大数ペアの合計は4 = min(1、2)+ min(3、4)です。
例2:

入力:[5,6]
出力:5
説明:nは1で、最大数のペアの合計は5 = min(5、6)です。この
問題は10分間発生しました、ハハ

最初に並べ替えられ、次に1、3、5 ...に従ってペアでグループ化されます。

class Solution {
    
    
public:
    /**
     * @param nums: an array
     * @return: the sum of min(ai, bi) for all i from 1 to n
     */
    int arrayPairSum(vector<int> &nums) {
    
    
        // Write your code here
   sort(nums.begin(), nums.end());
        int r = 0;
        for(int i = 0; i < nums.size(); i = i + 2)
        {
    
    
            r +=  nums[i];
        }
        return r;
    }

};

10月24日、2020Tagに投稿され
たアルゴリズム
アリババクラウド活動アルゴリズムで:配列パーティション

おすすめ

転載: blog.csdn.net/qq_44909275/article/details/109266641