/* * @lc app=leetcode id=561 lang=rust * * [561] Array Partition I * * https://leetcode.com/problems/array-partition-i/description/ * * algorithms * Easy (70.99%) * Total Accepted: 190.9K * Total Submissions: 268.9K * Testcase Example: '[1,4,3,2]' * * * 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]. * * */ impl Solution { pub fn array_pair_sum(mut nums: Vec) -> i32 { nums.sort(); // let x:i32 = nums.iter().sum(); nums.iter().step_by(2).sum() } } // pub structSolution; use std::collections::HashMap; use std::fmt::Debug; use std::hash::Hash; #[allow(dead_code)] pub fn print_map(map: &HashMap) { for (k, v) in map.iter() { println!("{:?}: {:?}", k, v); } } #[allow(dead_code)] pub fn say_vec(nums: Vec){ println!("{:?}", nums); } #[allow(dead_code)] pub fn char_frequency(s: String) -> HashMap { let mut res:HashMap = HashMap::new(); for c in s.chars(){ *res.entry(c).or_insert(0) += 1; } res }