题目
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。
返回该 最大总和 。
示例
题解一
class Solution:
def arrayPairSum(self, nums: List[int]) -> int:
# 这里一定要看清楚题目和示例,这里不要掉进先把各种可能的数组场景分出来,然后每种情况累加一下作比较
# 通过分析题目可以看到,最大值一定出现在正向排序后,每两个数据为一组,每组的第一个数据为最小值,然后它们的和为最大值
# 也就是先排序,再取从第一位开始,隔一位取一位求和
new_nums=sorted(nums)[::2]
return sum(new_nums)