LeetCode 561 陣列拆分 I

2021-09-11 03:37:45 字數 870 閱讀 9602

給定長度為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,...