LeetCode 训练场:561. 数组拆分 I

简介: LeetCode 训练场:561. 数组拆分 I

1. 题目

561. 数组拆分 I


2. 描述

给定长度为 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].


3. 实现方法

3.1 方法 1

3.1.1 思路

将数组排序;

然后选取偶数索引位置的数求和即为最终结果;

时间复杂度为 O ( n ) O(n)O(n);

3.1.2 实现


public int arrayPairSum(int[] nums) {
    int sum  = 0;
    // 数组排序
    Arrays.sort(nums);
    // 遍历数组,将偶数索引位置元素求和
    for(int i = 0; i < nums.length; i += 2){
        sum += nums[i];
    }
    return sum;
}
目录
相关文章
|
1月前
|
算法
【数组相关面试题】LeetCode试题
【数组相关面试题】LeetCode试题
|
9天前
|
C++
【力扣】2562. 找出数组的串联值
【力扣】2562. 找出数组的串联值
|
1月前
|
存储 算法
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
|
1月前
|
存储
力扣刷题-最大子数组和
力扣刷题-最大子数组和
10 1
|
1月前
leetcode2967. 使数组成为等数数组的最小代价
leetcode2967. 使数组成为等数数组的最小代价
20 0
|
1月前
|
算法 搜索推荐
LeetCode刷题---215. 数组中的第K个最大元素(双指针,快速选择)
LeetCode刷题---215. 数组中的第K个最大元素(双指针,快速选择)
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
31 8
|
27天前
|
机器学习/深度学习 算法
力扣刷题日常(一)
力扣刷题日常(一)
20 2
|
1月前
|
存储 索引
《LeetCode》—— LeetCode刷题日记
《LeetCode》—— LeetCode刷题日记
|
1月前
|
搜索推荐
《LeetCode》——LeetCode刷题日记3
《LeetCode》——LeetCode刷题日记3

热门文章

最新文章