题目在这: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。调整好这里即可。