当前位置:网站首页>力扣561. 数组拆分
力扣561. 数组拆分
2022-08-03 04:56:00 【洋圏外の彼女】
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。
返回该 最大总和 。
示例 1:
输入:nums = [1,4,3,2]
输出:4
解释:所有可能的分法(忽略元素顺序)为:
- (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
- (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
- (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4 所以最大总和为 4
示例 2:
输入:nums = [6,2,6,5,1,2]
输出:9
解释:最优的分法为 (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/array-partition
对于nums数组拆分的n对[a,b]数组中,选择a,b之间小的一个数字,相加得到一个最大的总和
第一个示例我们可以看出,是可以先将nums数组进行排序
我们将nums数组分为了(nums[0],nums[1]) = (1,2);
(nums[2],nums[3]) = (3,4)
两对,并且选择了1+3的带最大的总和;
也就是nums[0]+nums[2];
第二个示例,也可以先将数组进行排序[1,2,2,5,6,6]
而最大的总和是nums[0]+nums[2]+nums[4] = 1+2+6=9
代码
class Solution {
public int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int sum = 0;
//从第一个开始,每隔一个在加
for(int i=0;i<nums.length;i=i+2){
sum = sum +nums[i];
}
return sum;
}
}
边栏推荐
- MCM箱模型建模方法及大气O3来源解析
- 接口测试如何准备测试数据
- IO process thread -> thread -> day5
- Interface test practice | Detailed explanation of the difference between GET / POST requests
- 3.张量运算
- 常见荧光染料修饰多种基团及其激发和发射波长数据一览数据
- 【Harmony OS】【ARK UI】ets使用startAbility或startAbilityForResult方式调起Ability
- 【Harmony OS】【ArkUI】ets开发 基础页面布局与数据连接
- 1.一个神经网络示例
- 在竞争白热化的电商行业,链动2+1为什么还有企业在用
猜你喜欢
随机推荐
BIOTIN ALKYNE CAS: 773888-45-2 Price, Supplier
OSI的分层特点、传输过程与三次握手、四次挥手、tcp与udp包头的描述
数字化时代,企业如何建立自身的云平台与商业模式的选择?
链动2+1模式简单,奖励结构丰厚,自主裂变?
接口测试框架实战(三)| JSON 请求与响应断言
接口和协议
Concepts and Methods of Exploratory Testing
Redis缓存雪崩、缓存穿透、缓存击穿
C#异步和多线程
修饰生物素DIAZO-生物素-PEG3-DBCO|重氮-生物素-三聚乙二醇-二苯基环辛炔
typescript49-交叉类型
接口测试实战| GET/POST 请求区别详解
MOSN 反向通道详解
Interface Test Framework Practice (4) | Get Schema Assertion
typescript47-函数之间的类型兼容性
IO进程线程->线程->day5
好消息!北京、珠海PMP考试时间来啦
11.机器学习基础:机器学习的四个分支
Windows 安装PostgreSQL
【软件工程之美 - 专栏笔记】35 | 版本发布:软件上线只是新的开始