LintCode 1671. 玩游戏(贪心、难)

1. 题目

N 个人在玩游戏,每局游戏有一个裁判和 N-1 个平民玩家。给出一个数组 A, A[i] 代表玩家 i 至少需要成为平民 A[i] 次,返回最少进行游戏的次数。

样例 1:
输入:A = [2, 2, 2, 2]
输出:3
解析:
A[0] = 2表示玩家0至少需要成为2次平民
第一局:玩家0担任裁判,此时 A[0] = 0, A[1] = 1, A[2] = 1, A[3] =1
第二局:玩家1担任裁判,此时 A[0] = 1, A[1] = 1, A[2] = 2, A[3] = 2
第三局:玩家2担任裁判,此时 A[0] = 2, A[1] = 2, A[2] = 2, A[3] = 3
此时每个玩家都达到了要求,所以进行三局游戏即可样例 2:
输入:A = [84,53]
输出:137
解析:
第一局:玩家1担任裁判 ,此时 A[0] = 1, A[1] = 0
......
第三十一局:玩家1担任裁判,此时 A[0] = 31, A[1] = 0 
第三十二局:玩家0担任裁判,此时  A[1] = 31, A[1] = 1
第三十三局:玩家1担任裁判,此时  A[1] = 32, A[1] = 1
第三十四局:玩家0担任裁判,此时  A[1] = 32, A[1] = 2
......
第一百三十七局:玩家1担任裁判,此时  A[1] = 84, A[1] = 53
此时每个玩家都达到了要求,所以进行一百三十七局游戏即可注意事项
∑Ai <= 1e18
1 < n < 1000

2. 解题

  • 直接的想法是,次数最少的那个人当裁判,其他人 -1
  • 然后再排序,重复以上过程,模拟,数据数字非常大,会超时

  • 先排序,除最大的人MAX外,其余人都减去 MAX
  • 前面这 n-1 人的和(一个负数,可以当裁判的次数)
  • 如果这个数的绝对值(当裁判次数)> MAX,那么直接 MAX次游戏结束
  • 否则,裁判次数不够,需要补的次数 / n-1 个人来均摊
class Solution {
public:long long playGames(vector<int> &A) {// Write your code heresort(A.begin(),A.end());int n = A.size();int MAX = A[n-1];long long sum= 0;for(int i = 0; i < n-1; ++i){A[i] -= MAX;sum += A[i];}    if(sum + MAX <= 0)return MAX;elsereturn ceil((sum+MAX)/double(n-1))+MAX;}
};

100% 数据通过测试
总耗时 50 ms
您的提交打败了 54.05% 的提交!

class Solution {	//超时,模拟代码
public:long long playGames(vector<int> &A) {// Write your code hereint n =  A.size(), i, c;if(n == 2)return A[0]+A[1];long long sum = 0;sort(A.begin(),A.end());while(A[0] > 0){i= n-2;while(i >= 2 && A[n-1] == A[i])i--;c = A[n-1]-A[i];if(c==0)c = 1;sum += c;for(i = n-1; i >= 1; i--)A[i] -= c;sort(A.begin(),A.end());}if(A[n-1] > 0)sum += A[n-1];return sum;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团点评基于 Flink 的实时数仓建设实践

引言 近些年&#xff0c;企业对数据服务实时化服务的需求日益增多。本文整理了常见实时数据组件的性能特点和适用场景&#xff0c;介绍了美团如何通过 Flink 引擎构建实时数据仓库&#xff0c;从而提供高效、稳健的实时数据服务。此前我们美团技术博客发布过一篇文章《流计算框…

机器翻译做到头了?Meta开源NLLB翻译模型,支持200种语言互译

文 | Alex(凹非寺)源 | 量子位这个翻译模型&#xff0c;不仅支持200语言之间任意两两互译&#xff0c;还是开源的。Meta AI在发布开源大型预训练模型OPT之后&#xff0c;再次发布最新成果NLLB。NLLB的全称为No Language Left Behind&#xff0c;如果套用某著名电影&#xff0c;…

LintCode 1652. 区间异或 II

1. 题目 给定数组 A&#xff08;下标从0到n-1&#xff0c;n为数组长度&#xff09;&#xff0c;和一个查询列表。 每一项查询包括两个整数 i 和 k。 对于每次查询&#xff0c;计算Ai, A(i  1), ..., A(ik-1)的异或值。结果保存在列表中。 样例1 输入: A [1,2,3,4] and …

美团外卖Android平台化的复用实践

美团外卖平台化复用主要是指多端代码复用&#xff0c;正如美团外卖iOS多端复用的推动、支撑与思考文章所述&#xff0c;多端包含有两层意思&#xff1a;其一是相同业务的多入口&#xff0c;指美团外卖业务需要在美团外卖App&#xff08;下文简称外卖App&#xff09;和美团App外…

智源承认论文抄袭,相关责任人已离职!

文 | 金磊Alex(凹非寺)源 | 量子位“2处属于抄袭&#xff0c;4处引用不规范。”“相关责任人均已主动离职。”“大模型研究中心部门重组。”……一篇名为A Roadmap for Big Model、由百人联合完成的综述报告&#xff0c;因涉嫌抄袭在国内外学术圈引发了不小的关注。对此&#x…

LintCode 1689. k求和III(递归)

1. 题目 给出 n 个正整数和整数 k 以及一个目标数字 target. 在 n 个数中找出 k 个奇数 或 k 个偶数 使得和为target&#xff0c;输出方案数 样例 1: 给出 [1,2,3,4], k 2,target 4, 返回 1 输入: [1,2,3,4] 2 4 输出: 1 解释: 只有一个方案&#xff1a;[1,3].样例 2: 给…

美团扫码付小程序的优化实践

短短几年的时间&#xff0c;微信小程序已经从一颗小小的萌芽成长为参天大树&#xff0c;形成了较大规模的开发者生态系统&#xff0c;尤其是在支付、线下垂直领域潜力巨大。 作为领先的生活服务平台&#xff0c;美团的技术团队在小程序领域也进行了很多的探索和实践。像mpvue就…

谈谈算法岗简历优化与面试技巧!

秋招已经开始&#xff0c;许多同学都在为简历和面试发愁。我跟BAT某lab高级算法研究员、担任过多次技术面试官的Sunny师兄聊了聊&#xff0c;跟他请教了简历撰写和面试准备的方法。重磅福利在文末↓Sunny 目前在BAT某lab担任高级算法研究员&#xff0c;有多年的简历筛选和面试经…

LintCode 386. 最多有k个不同字符的最长子字符串(双指针)

1. 题目 给定字符串S&#xff0c;找到最多有k个不同字符的最长子串T。 样例 1: 输入: S "eceba" 并且 k 3 输出: 4 解释: T "eceb"样例 2: 输入: S "WORLD" 并且 k 4 输出: 4 解释: T "WORL" 或 "ORLD"挑战 O(n) 时…

院士发声:科研人也要养家,非升即走只能做短平快的研究

源 | 募格课堂综合自上游新闻、澎湃新闻、百度百科如今&#xff0c;59岁的中国科学院院士马大为&#xff0c;他也感慨科技界的“内卷”&#xff0c;“很多大学和研究单位没有按照科研的规律招PI&#xff08;Principal Investigator&#xff0c;学术带头人、首席研究员&#xff…

镣铐之舞:美团安全工程师Black Hat USA演讲

背景 2018年8月9日&#xff0c;全球顶级安全会议——Black Hat USA在美国拉斯维加斯的曼德勒海湾会议中心落下了帷幕&#xff0c;这场盛会在全球黑客心中几乎等同于“世界杯”和“奥斯卡”一样的存在。这场一年一度的盛会已经有着21年的悠久历史&#xff0c;也被公认为世界信息…

LintCode 550. 最常使用的K个单词II(自定义set(可修改数据的优先队列) + map)

1. 题目 在实时数据流中找到最常使用的k个单词. 实现TopK类中的三个方法: TopK(k), 构造方法add(word), 增加一个新单词topk(), 得到当前最常使用的k个单词. 样例 1: 输入&#xff1a; TopK(2) add("lint") add("code") add("code") topk() 输…

Pix2Seq:谷歌大脑提出 CV 任务统一接口!

文 | 青豆最近一个大趋势就是将各类任务统一在一个大一统框架下。大规模预训练语言模型已成功打通各类文本任务&#xff0c;使得不同的NLP任务上&#xff0c;都可以用这种统一的sequence生成框架作为基础模型&#xff0c;只需要通过prompt的方式&#xff0c;指导模型生成目标结…

美团针对Redis Rehash机制的探索和实践

背景 Squirrel&#xff08;松鼠&#xff09;是美团技术团队基于Redis Cluster打造的缓存系统。经过不断的迭代研发&#xff0c;目前已形成一整套自动化运维体系&#xff1a;涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Doc…

剑指Offer - 面试题59 - II. 队列的最大值(deque模拟单调栈)

1. 题目 请定义一个队列并实现函数 max_value 得到队列里的最大值&#xff0c;要求函数max_value、push_back 和 pop_front 的时间复杂度都是O(1)。 若队列为空&#xff0c;pop_front 和 max_value 需要返回 -1 示例 1&#xff1a; 输入: ["MaxQueue","push…

行业现状令人失望,工作之后我又回到UC伯克利读博了

文 | SHREYA SHANKAR编 | 小舟、陈萍源 | 机器之心很多同学在面临读博和工作的选择时会犹豫不决&#xff0c;这篇文章也许能给你一点启发。机器学习领域近来受到大模型的冲击&#xff0c;很多小公司表示难以承担大模型的训练费用。但行业中机器学习工程的发展具体是怎样的&…

前端遇上Go: 静态资源增量更新的新实践

为什么要做增量更新 美团金融的业务在过去的一段时间里发展非常快速。在业务增长的同时&#xff0c;我们也注意到&#xff0c;很多用户的支付环境&#xff0c;其实是在弱网环境中的。 大家知道&#xff0c;前端能够服务用户的前提是 JavaScript 和 CSS 等静态资源能够正确加载。…

剑指Offer - 面试题26. 树的子结构(双重递归)

1. 题目 输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A:3/ \4 5/ \1 2 给定的树 B&#xff1a;4 /1 返回 true&#xff0c;因为 B 与 A 的一…

给1万帧视频做目标分割,显存占用还不到1.4GB | ECCV2022

文 | 明敏 发自 凹非寺源 | 量子位 | 公众号 QbitAI咦&#xff0c;怎么好好的藤原千花&#xff0c;突然变成了“高温红色版”&#xff1f;这大紫手&#xff0c;难道是灭霸在世&#xff1f;&#xff1f;如果你以为上面的这些效果只是对物体后期上色了&#xff0c;那还真是被AI给…

互联网公司数据安全保护新探索

近年来&#xff0c;数据安全形势越发严峻&#xff0c;各种数据安全事件层出不穷。在当前形势下&#xff0c;互联网公司也基本达成了一个共识&#xff1a;虽然无法完全阻止攻击&#xff0c;但底线是敏感数据不能泄漏。也即是说&#xff0c;服务器可以被挂马&#xff0c;但敏感数…