查看: 1114| 回复: 2
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 求问一道greedy的题目

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
给3n个数字,每次抽3个,取n次。对抽出的三个数字里第二大的数字求和。问如何取使得这个和最大。
想了半天感觉只有每次取前两个最大和一个最小的方式,才能得出最大的和,请问这个题目能greedy解决吗

评分

参与人数 1大米 +4 收起 理由
14417335 + 4 给你点个赞!

查看全部评分


上一篇:Two Sum算法的小trick(Leetcode的premium的解答没有讲到的)
下一篇:2022年一月Google, Facebook, Amazon, Microsoft Leetcode高频题汇总
🔗
Meckwell 2022-1-29 12:01:04 | 只看该作者
全局:
记所有的数为x_1 >= x_2 >= ... >= x_(3n),第k次取出的数为a_k >= b_k >= c_k且不妨假设b_1 >= b_2 >= ... >= b_n

对任意的k,a_1, ... , a_k以及b_1, ... , b_(k-1)这(2k-1)个数都不小于b_k,所以b_k最大只能取到x_(2k)

进而\sum b_k <= \sum x_(2k),你给出的构造刚好可以取到这个最大值
回复

使用道具 举报

全局:
假设排序以后第一个最大,依次递减,要第二个是最大那就
1,2,2n+1
3,4,2n+2
5,6,2n+3
…..
2n-1,2n,3n
和就是2+4+6….+2n
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表