玩转大数据Python时空大数据大数据 爬虫Python AI Sql

LeetCode刷题DAY 39: 数组拆分 I

2021-02-16  本文已影响0人  三猫后端

原文地址: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算法

上一篇 下一篇

猜你喜欢

热点阅读