不知不觉,已经十七天了
刷起水题,果然日子都快了很多
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的代码呀
网友评论