561. Array Partition I

作者: fred_33c7 | 来源:发表于2018-06-27 12:21 被阅读0次

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

    相关文章

      网友评论

        本文标题:561. Array Partition I

        本文链接:https://www.haomeiwen.com/subject/vnsbyftx.html