給定長度為2n的陣列, 你的任務是將這些數分成n對, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得從1 到 n 的 min(ai, bi) 總和最大。
示例 1:
輸入: [1,4,3,2]
輸出: 4
解釋: n 等於 2, 最大總和為 4 = min(1, 2) + min(3, 4).
n是正整數,範圍在 [1, 10000].
陣列中的元素範圍在 [-10000, 10000].
解題思路:假設只是從陣列中選n個數字使其和最大,那麼就選排序後最大的前n個數字。現在題目多了乙個條件限制,即被選擇數字必須是一對數字中較小的那個。那麼分n次選擇時,第一次就不能選擇最大的數字,我們可以選擇第二大數字與最大數字組成對,第二次選擇時,我們可以選擇第四大數字與第三大數字組成對,依此類推。
python3**如下:
LeetCode561 陣列拆分 I
給定長度為2n的陣列,你的任務是將這些數分成n對,例如 a1,b1 a2,b2 an,bn 使得從1 到 n 的 min ai,bi 總和最大。示例 1 輸入 1,4,3,2 輸出 4 解釋 n 等於 2,最大總和為 4 min 1,2 min 3,4 n是正整數,範圍在 1,10000 陣列中的元...
LeetCode 561 陣列拆分I
給定長度為 2n 的陣列,你的任務是將這些數分成 n 對,例如 a1,b1 a2,b2 an,bn 使得從1 到 n 的 min ai,bi 總和最大。示例 1 輸入 1,4,3,2 n 是正整數,範圍在 1,10000 陣列中的元素範圍在 10000,10000 1 按照題目的要求,如果想得從1 ...
LeetCode 561 陣列拆分I
561.陣列拆分 給定長度為 2n 的整數陣列 nums 你的任務是將這些數分成 n 對,例如 a1,b1 a2,b2 an,bn 使得從 1 到 n 的 min ai,bi 總和最大。返回該 最大總和 示例 1 輸入 nums 1,4,3,2 輸出 4 解釋 所有可能的分法 忽略元素順序 為 1,...