import java.util.*;
class Result{
int id;
int value;
public Result(int id, int value){
this.id = id;
this.value = value;
}
}
public class Solution {
public static Map<Integer, Double> getHighFive(Result[] results)
{
Map<Integer, PriorityQueue<Integer>> map = new HashMap<>();
for(Result itr: results)
{
if(!map.containsKey(itr.id))
{
map.put(itr.id, new PriorityQueue<Integer>());
map.get(itr.id).offer(itr.value);
}
else
{
if(map.get(itr.id).size() < 5) map.get(itr.id).offer(itr.value);
else if(itr.value > map.get(itr.id).peek())
{
map.get(itr.id).poll();
map.get(itr.id).offer(itr.value);
}
}
}
Map<Integer, Double> res = new HashMap<>();
for(int id: map.keySet())
{
int sum = 0;
PriorityQueue<Integer> q = map.get(id);
while(!q.isEmpty()) sum += q.poll();
res.put(id, (sum + 0.0) / 5);
}
return res;
}
public static void main(String[] args) {
Result r1 = new Result(1, 95);
Result r2 = new Result(1, 95);
Result r3 = new Result(1, 91);
Result r4 = new Result(1, 91);
Result r5 = new Result(1, 93);
Result r6 = new Result(1, 105);
Result r7 = new Result(2, 6);
Result r8 = new Result(2, 6);
Result r9 = new Result(2, 7);
Result r10 = new Result(2, 6);
Result r11 = new Result(2, 6);
Result[] arr = {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11};
Map<Integer, Double> res = getHighFive(arr);
System.out.println(res.get(1) + " " +res.get(2));
}
}
Five Scores
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- one.一个消息,它到底意味着什么? 一个消息 晚上9点,志远盯着电脑频幕,时不时敲打着键盘。夜晚的宁静总能让他陷...
- Words and expressions 1. Wares(注意复数形式)货品,物品 Warehouse 仓库 ...
- // 什么时候调用:每次触发手势之前都会询问下代理,是否触发。// 作用:拦截手势触发