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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Words and expressions 1. Wares(注意复数形式)货品,物品 Warehouse 仓库 ...
- // 什么时候调用:每次触发手势之前都会询问下代理,是否触发。// 作用:拦截手势触发