leetcode讲解–561. Array Partition I

38次阅读

共计 633 个字符,预计需要花费 2 分钟才能阅读完成。

题目
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say $(a_1, b_1), (a_2, b_2), \cdots, (a_n, b_n)$ which makes sum of $min(a_i, b_i)$ 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 个数,两两一组,求
$$
\sum_{i=0}^{n} min(a_i, b_i)
$$
我们对数组排序,让小的两个组成一对,这样就能得到最大结果了。
Java 代码
class Solution {
public int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int result=0;
for(int i=0;i<nums.length;i+=2){
result+=nums[i];
}
return result;
}
}

正文完
 0