题目地址:https://leetcode.com/submissions/detail/160916288/
大意:把一个元素个数是2n的数组,分成n组,要求这n组里面比较小的数的和相加,最大。初一看,比较难理解。 (a1, b1), (a2, b2), …, (an, bn) 这个bn要比an大,但是又只能大一点点,因为a1+a2+a3要足够的da。所以可以把这个数组从小到大排序,这样后一个数比前一个数大,但是又只大一点点。
# 561. Array Partition I
class Solution:
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
return sum(nums[::2])
a = Solution()
print (a.arrayPairSum([1,4,3,2]))
知识点:
这里为了得到偶数的数组,可能会新建一个数组,把index%2==0
的元素放进新数组再相加,其实是要nums[::2]
就行了