首页 > 其他分享 >2512. 奖励最顶尖的 K 名学生

2512. 奖励最顶尖的 K 名学生

时间:2023-10-11 23:57:02浏览次数:38  
标签:Map String int 奖励 score 顶尖 id 2512 feedback

题目

题解

Map + Map

class Solution {
    public List<Integer> topStudents(String[] positive_feedback, String[] negative_feedback, String[] report, int[] student_id, int k) {

        // 将分数放到 Map 中
        Map<String, Integer> score = new HashMap<>();
        for (String s : positive_feedback) {
            score.put(s, 3);
        }
        for (String s : negative_feedback) {
            score.put(s, -1);
        }

        Map<Integer, Integer> idMap = new HashMap<>();
        for (int i = 0; i < student_id.length; i++) {
            String rep = report[i];
            String[] split = rep.split(" ");
            int cur = 0;
            for (String s : split) {
                cur += score.getOrDefault(s, 0);
            }
            idMap.put(student_id[i], cur);
        }
        // 对 key 进行排序
        return idMap.entrySet().stream().sorted((o1, o2) -> {

                    if (Objects.equals(o1.getValue(), o2.getValue())) {
                        return o1.getKey() - o2.getKey();
                    }
                    return o2.getValue() - o1.getValue();
                }).map(Map.Entry::getKey)
                .limit(k)
                .collect(Collectors.toList());

    }
}

Map + 二维数组

class Solution {
    public List<Integer> topStudents(String[] positive_feedback, String[] negative_feedback, String[] report, int[] student_id, int k) {

        // 将分数放在 Map
        Map<String, Integer> score = new HashMap<>();
        for (String s : positive_feedback) {
            score.put(s, 3);
        }
        for (String s : negative_feedback) {
            score.put(s, -1);
        }

        int[] scores = new int[student_id.length];
        int[][] idArrs = new int[student_id.length][2];
        for (int i = 0; i < student_id.length; i++) {
            String rep = report[i];
            String[] split = rep.split(" ");
            int cur = 0;
            for (String s : split) {
                cur += score.getOrDefault(s, 0);
            }
            // 分数-学号
            idArrs[i] = new int[]{cur, student_id[i]};
        }
        // 二维数组进行排序
        Arrays.sort(idArrs, (o1, o2) -> {
            if (o1[0] == o2[0]) {
                return o1[1] - o2[1];
            }

            return o2[0] - o1[0];
        });

        ArrayList<Integer> res = new ArrayList<>(k);
        for (int i = 0; i < k; i++) {
            res.add(idArrs[i][1]);
        }
        return res;
    }
}

标签:Map,String,int,奖励,score,顶尖,id,2512,feedback
From: https://www.cnblogs.com/liuzhihang/p/17758525.html

相关文章

  • 【数据库主题文档上传激励活动】已开启!快来上传文档赢取奖励
    自墨天轮社区的文档版块搭建至今,一直致力于为用户提供具有价值的技术资源与实操干货,此间也有非常多的用户加入进来,分享自己收藏的优质技术资源,共同为所有墨友搭建起一个丰富的技术资源“宝库”,十分感谢大家的支持!为了进一步丰富社区数据库技术主题内容,墨天轮社区现发起首期 【数......
  • Java学习_006_考试奖励
    需求:小明期末考试,小明的爸爸对他说,会根据他不同的期末考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。     奖励:95-100-----山地自行车一辆;  90-94------游乐场游玩一次;80-89----......
  • 精进语言模型:探索LLM Training微调与奖励模型技术的新途径
    精进语言模型:探索LLMTraining微调与奖励模型技术的新途径LLMsTrainer是一个旨在帮助人们从零开始训练大模型的仓库,该仓库最早参考自Open-Llama,并在其基础上进行扩充。有关LLM训练流程的更多细节可以参考【LLM】从零开始训练大模型。使用仓库之前,请先安装所有需要的依赖:......
  • 打造顶尖微服务项目!解锁四种持久化工具的酸爽奇迹!
    前言看到标题是不是以为我要教你微服务的什么绝技了?很遗憾,我只是想给你们分享一下我目前经手的一个SpringCloudAlibaba微服务项目带来的酸爽体验。今天,我姑且把持久层的酸爽感受同诸位交流一二,让诸位知晓编程领域之浩瀚广阔,帮诸位开拓一下视野。正文废话少说,先展示一......
  • 第9次获得微软最有价值专家(MVP)奖励
    Microsoft最有价值专家(MVP)是热情地与社区分享知识的技术专家群体。他们总是处于技术前沿,并且有不可阻挡的冲劲,想要获得令人兴奋的新技术。他们对Microsoft产品和服务有深入的了解,同时还能够将各种平台、产品和解决方案整合在一起,解决现实问题。https://mvp.microsoft.com/......
  • 三维视觉、SLAM方向全球顶尖实验室汇总
    欧洲英国伦敦大学帝国理工学院Dyson机器人实验室http://www.imperial.ac.uk/dyson-robotics-lab简介:伦敦帝国理工学院戴森机器人实验室成立于2014年,由AndrewDavison.教授领导。是戴森公司和帝国理工学院领导机器人视觉小组AndrewDavison教授的合作实验室,AndrewDavison是视觉SL......
  • 创新赛制,顶尖赛题!| 2023第二届粤港澳大湾区(黄埔)国际算法算例大赛十赛道虚位以待
    2023第二届“粤港澳大湾区(黄埔)国际算法算例大赛”(以下简称“大赛”)于 2023年7月15 日正式开赛。大赛面向全球,诚邀有创新精神,并有较好的AI算法算例基础的高校学生、AI领域相关企业和研究院所的从业人员和创客等报名参赛!创新赛制!顶尖赛题!2023战火重燃!点击链接:https://www.hey......
  • 视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取
    作为中国最早开源的深度学习框架,飞桨深度践行开源理念,开放拥抱社区,重视生态构建,与开发者和生态伙伴共成长,已成为国内综合竞争力第一的产业级深度学习平台。截至目前,飞桨已凝聚750万名开发者。在飞桨套件的建设中,除了来自百度的工程师外,还汇聚了一批热爱飞桨、热爱开源的开发者,他们......
  • 人工智能LLM模型:奖励模型的训练、PPO 强化学习的训练、RLHF
    人工智能LLM模型:奖励模型的训练、PPO强化学习的训练、RLHF1.奖励模型的训练1.1大语言模型中奖励模型的概念在大语言模型完成SFT监督微调后,下一阶段是构建一个奖励模型来对问答对作出得分评价。奖励模型源于强化学习中的奖励函数,能对当前的状态刻画一个分数,来说明这个状态产......
  • 十年磨一剑!小米公司成立即将满十年,顶尖工业设计已让世界惊叹
    2019年已经过去大半个月了,但是对于小米公司而言,2019年真的是值得铭记的一年。不仅仅造价高达46亿元的新总部成功建成,其还跻身世界500强,成为了全球最年轻的世界500强公司。甚至临近2019年年底的时候,还传出了小米电视国内年销突破1000万,成为中国电视行业第一并创造了中国电视工业新纪......