第十七天 Array Partition I

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

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的代码呀

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容