Skip to content
{{ message }}
/ LeetCode.swift Public
Switch branches/tags
Could not load branches
Nothing to show

Cannot retrieve contributors at this time
42 lines (33 sloc) 1.23 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
 // // ArrayPartitionI.swift // LeetCode.swift // // Created by 叶帆 on 2020/3/8. // Copyright © 2020 Suzhou Coryphaei Information&Technology Co., Ltd. All rights reserved. // /** 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: 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 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ，使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4). 提示: n 是正整数,范围在 [1, 10000]. 数组中的元素范围在 [-10000, 10000]. */ import Foundation class Solution { func arrayPairSum(_ nums: [Int]) -> Int { let ans = nums.sorted() return ans.enumerated().filter { \$0.offset % 2 == 0 }.reduce(0) { \$0 + \$1.element } } }