LeetCode561 陣列拆分 I

2022-06-27 20:12:11 字數 646 閱讀 7491

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

//

章節 - 陣列和字串

//四、雙指標技巧

//2.陣列拆分 i

/*演算法思想:

首先要正確理解題意,這道題讓我們分割陣列,兩兩一對,讓每對中較小的數的和最大。這題難度不大,用貪婪演算法就可以了。由於我們要最大化每對中的較小值之和,那麼肯定是每對中兩個數字大小越接近越好,因為如果差距過大,而我們只取較小的數字,那麼大數字就浪費掉了。明白了這一點,我們只需要給陣列排個序,然後按順序的每兩個就是一對,我們取出每對中的第乙個數即為較小值累加起來即可。

*///

演算法實現:

class

solution

return

res;

}};

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 輸出 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 ...