561. Array Partition I

题目地址: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]就行了

所有题目解题方法和答案代码地址:https://github.com/fredfeng0326/LeetCode
    原文作者:fred_33c7
    原文地址: https://www.jianshu.com/p/8f58b2d8bc10
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞