LeetCode题目,561. Array Partition I
先看题目描述
大意就是给定一个有 2n 个元素的数组 nums,将数组拆分成 n 对,使得每对元素的最小值之和最大,返回该值
算法和思路
贪心
对于数组 nums,我们首先考虑里面的最小值,设为 min,由于 min 是 nums 中最小的,因此无论哪个元素和它放在一对,从这对中选择的数都是 min,即 min 会牺牲掉一个比它大的数,我们肯定希望这种牺牲尽可能小,因此将第二小的元素与 min 放在一对。对于剩下的元素,也是进行相同的考虑。因此我们可以将 nums 按照升序排列,然后选择所有偶数下标的元素,将值相加即可得到答案
算法源码
贪心
1 | class Solution { |