給定長度為 2n 的陣列, 你的任務是將這些數分成 n 對, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得從1 到 n 的 min(ai, bi) 總和最大。
示例 1:
輸入: [1,4,3,2]n 是正整數,範圍在 [1, 10000].輸出: 4
解釋: n 等於 2, 最大總和為 4 = min(1, 2) + min(3, 4).
陣列中的元素範圍在 [-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 ...