561.数组拆分I

题目:给定长度为 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).

代码

 class Solution {
public:
    int arrayPairSum(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int res = 0;
        for(int i = 0;i<nums.size();i += 2){
            res += nums[i];
    }
    return res;
    }

};

笔记:先对数组进行排列,再以偶数进行循环读取i值,每次循环res=res+num[i].

原文地址:https://www.cnblogs.com/kloseer/p/10417911.html

时间: 2024-10-11 08:59:16

561.数组拆分I的相关文章

Leetcode 561.数组拆分I

数组拆分 I 给定长度为 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]. 思路 这道题目给了我们一个数组有2n i

561. 数组拆分 I

给定长度为 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]. class Solution { public int

Leetcode#561. Array Partition I(数组拆分 I)

题目描述 给定长度为 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]. 思路 分组之后min(ai, bi)的和最大

数组拆分

温习并学习下算法,记录设计地点滴. 数组拆分是将一个无序数组,拆分成两个子数组,子数组A地元素全部比数组元素小,子数组B地元素全部比数组元素大. 代码如下: package test; import java.util.Arrays; public class PartitionPolicy { public void part(int[] array, int key) { // swap int temp = array[key]; array[key] = array[array.leng

java数组拆分多个子数组

这里做个java集合/数组拆分多个子集合/数组的两种实现方式的笔记. 方式 一: /**  * 拆分集合  * @param datas  * @param splitSize  * @param <T>  * @return  */ private <T> List<List<T>> spliceArrays(List<T> datas, int splitSize) {     if (datas == null || splitSize &

将数组拆分为字符串

//将数组拆分为字符串 $attr=$db->Query($sql); $str=""; foreach($attr as $v) { $str =$str. implode("^",$v); $str = $str."|"; } $str = substr($str,0,strlen($str)-1); echo $str; //将字符串拼接为数组 var hang = data.split("|"); for(var

LeetCode561 数组拆分 I

给定长度为 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]. //章节 - 数组和字符串 //四.双指针技巧 //2

*hiho 1475 - 数组拆分,dp,由N^2降到NlogN

题目链接 描述 小Ho得到了一个数组作为他的新年礼物,他非常喜欢这个数组! 在仔细研究了几天之后,小Ho成功的将这个数组拆成了若干段,并且每段的和都不为0! 现在小Ho希望知道,这样的拆分方法一共有多少种? 两种拆分方法被视作不同,当且仅当数组断开的所有位置组成的集合不同. 输入 每组输入的第一行为一个正整数N,表示这个数组的长度 第二行为N个整数A1~AN,描述小Ho收到的这个数组 对于40%的数据,满足1<=N<=10 对于100%的数据,满足1<=N<=105, |Ai|&l

[Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence

Given a string S of digits, such as S = "123456579", we can split it into a Fibonacci-like sequence [123, 456, 579]. Formally, a Fibonacci-like sequence is a list F of non-negative integers such that: 0 <= F[i] <= 2^31 - 1, (that is, each