LeetCode刷题DAY 39: 数组拆分 I

原文地址:LeetCode刷题DAY 39: 数组拆分 I


题目描述

给定长度为 2n 的整数数组nums,将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该最大总和 。

python实例展示

思路:排序

假设每一对表示为(an, bn) ,且an<=bn,我们要求的是

也就是所有a的和。因此这道题目的关键是在于如何将数组进行分对,以尽可能把较大的数值保留下来。从上述公式可知,最大的值一定在b集合中,但我们应把第二大的值保留在a集合中,以此类推。所以我们可以将数组由小到大进行排序,元素依次归位a、b集合,我们只需将从第一个元素起,所有的元素加起来,就是最后要返回的结果。


往期推荐:

XGBoost(二):R语言实现

基于物品的协同过滤python案例演示

R语言爬虫与文本分析

图片相似度识别:pHash算法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容