第六天《九日集训》第十二轮 (第六讲) 贪心

ORZ每天都能被菜醒 2022-03-12 08:02:02

第六讲:贪心

一、今日知识点

贪心:总是做出在当前看来最好的选择。也就是说不从整体最优上考虑,算法得到的是某种意义上的局部最小优解。

比如:对于一个全是整数的数组,我要找到其中的最大值,使得它们的乘积最大。我们可以找到最大的和次大的两个数相乘,得到的结果最大。

二、今日题解

  1. 最大乘积差:找到最大的数和次大的数与最小的数和次小的数就好了,剩下的😃

  2. 三角形的最大周长:从最大的长度开始找是否构成三角形就行。

  3. 数组拆分(1):使min(a,b)的总和最大,a,b之间的差距越小越好,升序排列后两两组成数对求和即可。

  4. 救生艇:运用贪心,尽可能利用上体重,使得体重大的同时最好还能再带上一个人,循环终止条件就是l<=r。

  5. 摆动排序(2):观察到偶数位置上的数总是比其两边的数要大,我们可以将这组数据分成两部分,较大的和较小的,将较大的填到偶数位上,将较小的填到奇数位上。

  6. 分发饼干:运用贪心的思想,尽可能让胃口大的得到满足,当无法满足时,果断放弃它让比它小的满足即可,直到饼干没有了或没人了。

  7. 最少操作使数组递增:操作数就是相邻两个数的差值,枚举整个元素,让前一个元素总是小于后一个元素。

三、今日收获

image-20220312075700556

 

贪心即总是设法找到当前处理的最好办法,要想在面对任意对象的组合下找到最好的,可以根据题意对数据进行分析,进行排序或其他操作,找到每一步的最优解进行某种局部上关系的累积即可得到近似于全局的最优解。

四、今日疑问

...全文
105 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,199

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧