有什么做户外活动的网站吗,江门seo网络推广,全国大型教育集团网站建设,主机屋网站搭建设置这是数组的第18篇#xff0c;力扣链接。 给定长度为 2n 的整数数组 nums #xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) #xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1#xff1a; 输入#xff1a;n…这是数组的第18篇力扣链接。 给定长度为 2n 的整数数组 nums 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) 使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1 输入nums [1,4,3,2]
输出4
解释所有可能的分法忽略元素顺序为
1. (1, 4), (2, 3) - min(1, 4) min(2, 3) 1 2 3
2. (1, 3), (2, 4) - min(1, 3) min(2, 4) 1 2 3
3. (1, 2), (3, 4) - min(1, 2) min(3, 4) 1 3 4
所以最大总和为 4 示例 2 输入nums [6,2,6,5,1,2]
输出9
解释最优的分法为 (2, 1), (2, 5), (6, 6). min(2, 1) min(2, 5) min(6, 6) 1 2 6 9 这道题的解法可以暴力一点就是排序完数组两两一组的话肯定会选择第一个那我们直接让奇数坐标的数相加得到结果。
func arrayPairSum(nums []int) int {sort.Slice(nums, func(i, j int) bool {return nums[i] nums[j]})result : 0for i : 0; i len(nums); i 2 {result nums[i]}return result
}