python--leetcode561. Array Partition I
2017-09-22 17:12
519 查看
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1,
b1), (a2, b2),
..., (an, bn) which makes sum of min(ai,
bi) for all i from 1 to n as large as possible.
Example 1:
Note:
n is a positive integer, which is in the range of [1, 10000].
All the integers in the array will be in the range of [-10000, 10000].
这题的意思大概就是给2n个数字,按照(a1,b1)的方式组成n个序列,然后把所有min(ai,bi)加起来得合sum,求sum的最大值。
上代码:
class Solution(object):
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
sum=0
for i in range(len(nums)):
if(i%2==0): sum=sum+nums[i]
return sum思路很简单,给list排个序,所有下标为偶数的元素加起来就为所求。
设想给定情况为[1,2,4,3]四个元素,组合成[1,2]、[3,4]这样所求sum值最大。
当然还有更简单的一行代码:
class Solution(object):
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(sorted(nums)[::2])
b1), (a2, b2),
..., (an, bn) which makes sum of min(ai,
bi) for all i from 1 to n as large as possible.
Example 1:
Input: [1,4,3,2] Output: 4 Explanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).
Note:
n is a positive integer, which is in the range of [1, 10000].
All the integers in the array will be in the range of [-10000, 10000].
这题的意思大概就是给2n个数字,按照(a1,b1)的方式组成n个序列,然后把所有min(ai,bi)加起来得合sum,求sum的最大值。
上代码:
class Solution(object):
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
sum=0
for i in range(len(nums)):
if(i%2==0): sum=sum+nums[i]
return sum思路很简单,给list排个序,所有下标为偶数的元素加起来就为所求。
设想给定情况为[1,2,4,3]四个元素,组合成[1,2]、[3,4]这样所求sum值最大。
当然还有更简单的一行代码:
class Solution(object):
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(sorted(nums)[::2])
相关文章推荐
- leetcode题解-561. Array Partition I && 62. Unique Paths && 63. Unique Paths II
- leetcode561. Array Partition I
- Leetcode561. Array Partition I
- 【LeetCode】561. Array Partition I
- Leetcode题解-561. Array Partition I
- LeetCode 561. Array Partition I (数组分隔之一)
- [LeetCode] 561.Array Partition I
- 【leetcode】561. Array Partition I
- LeetCode 561. Array Partition I
- leetcode试水--561. Array Partition I
- [LeetCode]561.Array Partition I
- LeetCode 561. Array Partition I
- 【LeetCode】561. Array Partition I
- LeetCode 561. Array Partition I
- [LeetCode] 561. Array Partition I
- leetcode:561. Array Partition I
- LeetCode 561. Array Partition I (排序、遍历)
- LeetCode-561. Array Partition I
- LeetCode 561. Array Partition I
- LeetCode 561. Array Partition I