美文网首页Leetcode刷题笔记
第十七天 Array Partition I

第十七天 Array Partition I

作者: 业余马拉松选手 | 来源:发表于2018-09-05 23:44 被阅读4次

不知不觉,已经十七天了
刷起水题,果然日子都快了很多

https://leetcode-cn.com/submissions/detail/6613451/

数组的分组,这道题也是开始有点唬人,但其实想明白了很简单

将数组两两分组,取出每个分组里较小的那个,然后求和,需要让这个和最大。

那么举个例子 [1,444,888,3]
这里,如果把1和444分成一组,888和3分成一组,那么这个和只能是4,但如果是把444和888放到一组,这个和就是445。再深想一步,其实就是把数组先排个序,然后取奇数位的和即可。

因为还是对Python没啥更深的感觉,方法用的有点笨拙。

class Solution:
    def arrayPairSum(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        ret = 0
        for i in range(0,len(nums),2):
            ret += nums[i]
        return ret

其实可以有一种更简单明了的方法:

class Solution:
    def arrayPairSum(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        return sum(nums[::2])

道理是一样的咯,还是要能写出跟Pythonic的代码呀

相关文章

网友评论

    本文标题:第十七天 Array Partition I

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