力扣日記 561 陣列拆分 數學問題

2021-10-03 17:53:02 字數 796 閱讀 9673

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