news 2026/5/30 3:54:05

Leetcode会员尊享面试100题:1086:前五科的均分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode会员尊享面试100题:1086:前五科的均分

给你一个不同学生的分数列表items,其中items[i] = [IDi, scorei]表示IDi的学生的一科分数,你需要计算每个学生最高的五科成绩的平均分

返回答案result以数对数组形式给出其中result[j] = [IDj, topFiveAveragej]表示IDj的学生和他最高的五科成绩的平均分result需要按IDj递增的顺序排列

学生最高的五科成绩的平均分的计算方法是将最高的五科分数相加,然后用整数除法除以 5 。

示例 1:

输入:items = [[1,91],[1,92],[2,93],[2,97],[1,60],[2,77],[1,65],[1,87],[1,100],[2,100],[2,76]]输出:[[1,87],[2,88]]解释:ID = 1 的学生分数为 91、92、60、65、87 和 100 。前五科的平均分 (100 + 92 + 91 + 87 + 65) / 5 = 87 ID = 2 的学生分数为 93、97、77、100 和 76 。前五科的平均分 (100 + 97 + 93 + 77 + 76) / 5 = 88.6,但是由于使用整数除法,结果转换为 88

示例 2:

输入:items = [[1,100],[7,100],[1,100],[7,100],[1,100],[7,100],[1,100],[7,100],[1,100],[7,100]]输出:[[1,100],[7,100]]

提示:

  • 1 <= items.length <= 1000
  • items[i].length == 2
  • 1 <= IDi <= 1000
  • 0 <= scorei <= 100
  • 对于每个IDi至少存在五个分数

题目比较简单,我们不知道在考啥,直接上代码,看不懂留言或者私信

class Solution { /**这什么乱七八糟的题啊,看着都懵,我猜不出什么解法,但是数据了这么小, 怎么写都能过吧 */ public int[][] highFive(int[][] items) { /**题目规定items的length至少有1,每个id又至少有5个分数 这不扯淡吗,自相矛盾,所以边界我不管了 */ /**先排个序,如果id不同按id从小到大排序,如果id相同按分数从大到小排序*/ Arrays.sort(items, (a, b)->a[0] == b[0]? b[1] - a[1] : a[0] - b[0]); /**然后就挨个遍历呗,每个id只收前五个,收完的平均分放到原数组的前面,所以 我们需要定义一个index代表当前数组的长度(也是下一个要放的位置)*/ int index = 0; /**当前累计的和 */ int curSum = 0; /**当前id已经统计过几门课的分数 */ int curCount = 0; /**当前统计的id是啥 */ int preId = 0; for(int[] item : items) { /**换成新的id,当然所有的都从头起*/ if(item[0] != preId) { curSum = item[1]; curCount = 1; preId = item[0]; } else { /**还是这门课,但是我们前五名统计完了,剩下的直接跳过 */ if(curCount == 5) { continue; } /**不够的情况count++,curSum加上当前课的分数 */ curSum += item[1]; curCount ++; /**加完之后够五个了,收集数据 */ if(curCount == 5) { items[index][0] = preId; items[index ++][1] = curSum / 5; } } } /**定义结果 */ int[][] result = new int[index][2]; /**拷贝结果到结果数组 */ System.arraycopy(items,0,result,0, index); return result; } }

运行结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 14:44:07

提示工程架构师揭秘:AI驱动提示实时优化的技术方案

提示工程架构师揭秘&#xff1a;AI驱动提示实时优化的技术方案 一、引言&#xff1a;为什么你需要“AI帮你调Prompt”&#xff1f; 1. 一个扎心的痛点&#xff1a;你还在手动“试错式”调Prompt吗&#xff1f; 上周&#xff0c;我遇到一位做AI客服的朋友&#xff0c;他吐槽&…

作者头像 李华
网站建设 2026/5/28 13:39:31

利用RabbitMQ提升大数据系统的消息吞吐量

RabbitMQ在大数据系统中的吞吐量优化实践&#xff1a;从原理到落地 副标题&#xff1a;解决高并发消息场景下的延迟、丢包与性能瓶颈 摘要/引言 在大数据系统中&#xff0c;消息中间件是连接数据源&#xff08;如日志采集、业务系统&#xff09;与计算引擎&#xff08;如Fli…

作者头像 李华
网站建设 2026/5/30 18:47:38

向量的叉乘

叉乘的定义&#xff1a; 对于不共线的两个向量 a 和 b &#xff0c;他们叉乘的结果是一个新的向量。并且这个向量垂直与a、b两个向量所在的平面。叉乘后向量的模为&#xff1a; | a x b| | a | | b | sinθ叉乘后向量的方向&#xff1a; 将 a b平移至同起点。用右手螺旋定…

作者头像 李华
网站建设 2026/5/28 13:39:36

焊缝跟踪 abb机器人二次开发 上位机由C#+halcon联合编程 提供源码讲解

焊缝跟踪 abb机器人二次开发 上位机由C#&#xff0b;halcon联合编程 提供源码讲解&#xff0c;abb编程及通讯、工业相机标定、halcon图像处理、C#与halcon联合编程等 系统架构与设计理念 本系统是一个高度集成的工业自动化解决方案&#xff0c;采用C# WinForms作为前端界面框…

作者头像 李华
网站建设 2026/5/28 13:39:37

Golang高性能轻量博客程序源码

极速部署&#xff0c;拥抱主题插件化你是否厌倦了臃肿、复杂的博客系统&#xff1f;是否希望拥有一个启动如闪电、资源占用极小&#xff0c;同时又保持足够灵活性的个人写作空间&#xff1f;今天&#xff0c;我们向所有追求极致效率和简洁的开发者、博主推荐一款基于 Go 语言开…

作者头像 李华
网站建设 2026/5/30 3:32:21

互联网大厂Java面试实战:从Spring Boot到Kafka的技术与业务场景解析

面试场景介绍 在当前互联网大厂的Java岗位面试中&#xff0c;面试官通常会结合具体业务场景&#xff0c;深入考察应聘者对核心技术栈的理解和应用能力。本文通过一个音视频场景的模拟面试&#xff0c;展示面试官与应聘者谢飞机的互动&#xff0c;帮助读者系统学习相关技术。第一…

作者头像 李华