刚做完,居然AK了,题目条件是尽量公平,也就是前两名一定进决赛,前四名一定进四强,以此类推。所以可以先排序,降序,每打一轮数组就减少后面一半的人(当然这里数组没有必要真的删掉后一半,遍历的时候每次缩小一半即可),遍历所有轮数(log2N),每一轮枚举前一半和后一半的比赛情况(前一半 * 后一半 O(n2)),看是否小于等于阈值K,这里的枚举可以用到大量的剪枝,因为已经排好序了,第一个剪枝,如果一旦前一半某个数和后一半某个数差值小于K,说明已经匹配好了,ans++,直接退出,枚举前一半下一个元素,第二个剪枝,如果前一半某个数和后一半某个数差值已经大于K了,也直接退出,因为是降序,后一半某个数后面的数只会更小,再和前面的比较更会大于K了,直接退出,我是两个剪枝后就AK了
点赞 2

相关推荐

09-03 18:24
已编辑
杭州电子科技大学 Java
面试官看了看时间,再来一道算法题吧反转链表 + 写核心函数即可或者我: 对我有什么建议嘛?面试官:  你反问的时候可以主动点,问我刚刚的算法题怎么能优化成最佳工程实践,虽然我不一定告诉你(调皮笑脸音)==============以上是秋招,我在字节的二面以及一面的过程我觉得不仅仅是得看面试官,面试者也需要一定的聊天能力,我跟一面面试官反问环节就聊了25分钟,也算是聊的非常开心。刚刚听了录音,原来并不是我问有什么建议。而是快结束,面试官主动问我,为什么不问他ES的最佳工程实现以及算法题的最佳实践。然后就是后面的玩笑话。(隔天约二面以及9.1这天的字节二面,其中更是问到我ElasticSearch、Lucene还有LSM树怎么学的,我感觉前面的问题答得非常符合面试官胃口,所以这里就直接,双手放到腿边撑着,说:不说其他虚的,其实我是三月被腾讯拷打ES后,自己去github看源码、翻各种优秀代码配合GPT学的。面试官笑了笑,就给出一道算法,然后让我写之前说说思路。这里有一点我觉得可以借鉴,说完思路,然后写完后,可以适当补充注释和补一句,等我把代码调整一下再详细说说原理(就是力扣那种格式化代码,idea的CTRL+ALT+L)在算法中,思路和A出来固然重要,但是编码风格和适当和面试官互动也是较为重要的后面也是面试官 看时间才四十多分钟,又出了这道 反转链表过程:我: 需要写main和构造链表吗? 他:不用的不用的。 我: 还是写一写吧,不写定义,爆红了不方便我俩看代码
小肥罗:你爱字节跳动是吧,腾讯,阿里:我们不要你
查看4道真题和解析
点赞 评论 收藏
分享
09-01 10:50
已编辑
东华大学 C++
落糖糖:同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,我的主页最新动态,绿灯直达,免笔试~
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务