| @@ -0,0 +1,17 @@ | |||
| use std::cmp::min; | |||
| pub fn array_pair_sum(mut nums: Vec<i32>) -> i32 { | |||
| let mut acc_sum = 0; | |||
| nums.sort(); | |||
| for chunk in nums.chunks(2) { | |||
| if let [a, b] = chunk { | |||
| acc_sum += min(a, b); | |||
| } | |||
| } | |||
| acc_sum | |||
| } | |||
| pub fn main() { | |||
| println!("Expected: 4"); | |||
| println!("Got: {}", array_pair_sum(vec![1, 4, 3, 2])); | |||
| } | |||
| @@ -0,0 +1,13 @@ | |||
| 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]. | |||
| @@ -0,0 +1,5 @@ | |||
| #!/bin/bash | |||
| rustc main.rs | |||
| ./main | |||
| rm main | |||