給定長度為 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).
這是道數學問題,很容易想道所能得到的最大值,就是陣列從小到大,兩兩一組得到的答案。
演算法就很容易得到:
class
solution
:def
arraypairsum
(self, nums: list[
int])-
>
int:
nums.sort(
) n=
0for i in nums[0:
:2]:
n+=i
return n
執行用時 :332 ms, 在所有 python3 提交中擊敗了59.67%的使用者記憶體消耗 :15.8 mb, 在所有 python3 提交中擊敗了6.51%的使用者
return
sum(
sorted
(nums)[:
:2])
執行用時 :324 ms, 在所有 python3 提交中擊敗了72.29%的使用者
561 陣列拆分 I 力扣
題目 給定長度為 2n 的整數陣列 nums 你的任務是將這些數分成 n 對,例如 a1,b1 a2,b2 an,bn 使得從 1 到 n 的 min ai,bi 總和最大。返回該 最大總和 示例 1 輸入 nums 1,4,3,2 輸出 4 解釋 所有可能的分法 忽略元素順序 為 1,4 2,3 ...
力扣561 陣列拆分 I C語言實現 簡單題
傳送門 給定長度為 2n 的整數陣列 nums 你的任務是將這些數分成 n 對,例如 a1,b1 a2,b2 an,bn 使得從 1 到 n 的 min ai,bi 總和最大。返回該 最大總和 示例 1 輸入 nums 1,4,3,2 輸出 4 解釋 所有可能的分法 忽略元素順序 為 1,4 2,3...
561 陣列拆分I
給定長度為 2n 的整數陣列 nums 你的任務是將這些數分成 n 對,例如 a1,b1 a2,b2 an,bn 使得從 1 到 n 的 min ai,bi 總和最大。返回該最大總和 示例 1 輸入 nums 1,4,3,2 輸出 4 解釋 所有可能的分法 忽略元素順序 為 1,4 2,3 min ...