巾帼不让须眉:每日大赛中闪耀的女性力量

核心内容摘要

玥玥的宝库
猫娘的羞涩与泪光:那一刻,心动不止一点点

探秘“麻豆国产”:不止于视觉的盛宴,更是文化与创新的融合

给你一个不同学生的分数列表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、

87 和 100 。

前五科的平均分 (100 92 91 87

/ 5 87 ID 2 的学生分数为

93、

97、

100 和 76 。

前五科的平均分 (100 97 93 77

/ 5

8

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 1000items[i].length 21 IDi 10000 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

{ continue; } /**不够的情况countcurSum加上当前课的分数 */ curSum item[1]; curCount ; /**加完之后够五个了收集数据 */ if(curCount

{ items[index][0] preId; items[index ][1] curSum / 5; } } } /**定义结果 */ int[][] result new int[index][2]; /**拷贝结果到结果数组 */ System.arraycopy(items,0,result,0, index); return result; } }运行结果

下载黄色视频-下载黄色视频应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123