算法提高之LeetCode刷题LeetCode Python算法

561. Array Partition I

2018-06-27  本文已影响0人  fred_33c7

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

上一篇下一篇

猜你喜欢

热点阅读