当前位置: 代码迷 >> 综合 >> 力扣(leetcode) 1877. 数组中最大数对和的最小值 (排序后头尾组合)
  详细解决方案

力扣(leetcode) 1877. 数组中最大数对和的最小值 (排序后头尾组合)

热度:49   发布时间:2023-12-26 11:39:34.0

题目在这:https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/

思路分析:

题目意思就是,找所有数对和的最大值,而数对和尽量都是最小的。

举个例子 S = [3,5,2,3] 当(3,3)和(2,5)结合时最大为7。其他情况组合包含(3,5) 则将出现更大的数 8。
所以要避免出现大的值,一定是最大的数和最小的数组合。次大的和次小的组合。
可以不断的使用max和min函数,不过那样会超时。

我们可以将数组排序。第一个数和最后一个数进行结合,操作到中间即可。

完整代码:

 		nums.sort()res = 1n = len(nums) // 2print(nums)for i in range(n+1):res = max(res,nums[i] + nums[-i - 1])return res

这里唯一要注意的点就是,数组的开头索引为0,而最后一位数的索引为-1。调整好这里即可。