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

2023-10-13 01:15
文章标签 学生 奖励 顶尖 2512

本文主要是介绍2512.奖励最顶尖的K名学生,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

s给你两个字符串数组 positive_feedback 和 negative_feedback ,分别包含表示正面的和负面的词汇。不会 有单词同时是正面的和负面的。

一开始,每位学生分数为 0 。每个正面的单词会给学生的分数 加 3 分,每个负面的词会给学生的分数 减  1 分。

给你 n 个学生的评语,用一个下标从 0 开始的字符串数组 report 和一个下标从 0 开始的整数数组 student_id 表示,其中 student_id[i] 表示这名学生的 ID ,这名学生的评语是 report[i] 。每名学生的 ID 互不相同

给你一个整数 k ,请你返回按照得分 从高到低 最顶尖的 k 名学生。如果有多名学生分数相同,ID 越小排名越前。

示例 1:

输入:positive_feedback = ["smart","brilliant","studious"], negative_feedback = ["not"], report = ["this student is studious","the student is smart"], student_id = [1,2], k = 2
输出:[1,2]
解释:
两名学生都有 1 个正面词汇,都得到 3 分,学生 1 的 ID 更小所以排名更前。

示例 2:

输入:positive_feedback = ["smart","brilliant","studious"], negative_feedback = ["not"], report = ["this student is not studious","the student is smart"], student_id = [1,2], k = 2
输出:[2,1]
解释:
- ID 为 1 的学生有 1 个正面词汇和 1 个负面词汇,所以得分为 3-1=2 分。
- ID 为 2 的学生有 1 个正面词汇,得分为 3 分。
学生 2 分数更高,所以返回 [2,1] 。

提示:

  • 1 <= positive_feedback.length, negative_feedback.length <= 104
  • 1 <= positive_feedback[i].length, negative_feedback[j].length <= 100
  • positive_feedback[i] 和 negative_feedback[j] 都只包含小写英文字母。
  • positive_feedback 和 negative_feedback 中不会有相同单词。
  • n == report.length == student_id.length
  • 1 <= n <= 104
  • report[i] 只包含小写英文字母和空格 ' ' 。
  • report[i] 中连续单词之间有单个空格隔开。
  • 1 <= report[i].length <= 100
  • 1 <= student_id[i] <= 109
  • student_id[i] 的值 互不相同 。
  • 1 <= k <= n

2512. 奖励最顶尖的 K 名学生 - 力扣(LeetCode)

思路:

首先把表扬词汇和批评词汇总到同一个集合里面,也就是把词汇附上自己的价值,如果是表扬词汇,那么对应的键值对就是3,批评就是-1;然后是循环每一个学生的评语,然后根据空格分开每一个词汇,并同时判断这个词汇是什么属性,用一个初始数值为0的变量记录这个学生的分数;然后把这个学生总的分数的负数和她的id相结合(因为要从大到小排序),然后把分数进行排序,用到了lambda表达式,然后就是返回前k名学生的id;

完整代码

class Solution {public List<Integer> topStudents(String[] positive_feedback, String[] negative_feedback, String[] report, int[] student_id, int k) {Map<String ,Integer> map = new HashMap<>();for (String str :positive_feedback) {map.put(str,3);}for (String str : negative_feedback) {map.put(str,-1);}int n = report.length;int [][]A = new int[n][2];for (int i = 0; i < n; i++) {int score = 0;for (String str : report[i].split(" ")) {score += map.getOrDefault(str, 0);}A[i][0] = -score;A[i][1] = student_id[i];}Arrays.sort(A, (a, b) -> a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]);List<Integer> top = new ArrayList<>();for (int i = 0; i < k; i++) {top.add(A[i][1]);}return top;}
}

这篇关于2512.奖励最顶尖的K名学生的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199741

相关文章

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

家庭和学生用户笔记本电脑配置方案

2.6.1  家庭和学生用户笔记本电脑配置方案   2.6.1  家庭和学生用户笔记本电脑配置方案   普通家庭用户、学生用户主要用于上网、娱乐、学习等,这类用户要求笔记本电脑的各方面 功能比较均衡。在选购此类笔记本电脑时,主要考虑外观设计方面要比较时尚,而且性能上也要 够强,一些大型复杂的软件以及目前的主流游戏都要能够流畅地运行才行。   对于CPU方面,可以考虑目前主流的第二

springboot学生社团管理系统—计算机毕业设计源码26281

目录 摘要 Abstract 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 学生社团管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3

家校携手应对开学焦虑,共筑学生心理健康防线

随着新学期的钟声敲响,不少学生尤其是新生,开始感到焦虑。他们或是对课程难度心存畏惧,担心自己无法跟上学习节奏;或是害怕在新环境中无法找到归属感,担心人际关系处理不当。 这种情绪在社交媒体上屡见不鲜,如一位家长在社交平台上的分享,这位就读于寄宿制高中的学生,在首次回家后的周末,向家人吐露了对新环境的不适应和学业的挫败感,这不仅仅是一个个案,而是众多学生共同的心声。 深入剖析开学焦虑的背后,不难发

书客、孩视宝、雷士护眼大路灯怎么样?测评寻找顶尖机型天花板!

书客、孩视宝、雷士护眼大路灯怎么样?最近,众多读者纷纷表达了对护眼大路灯推荐和护眼大路灯测评的需求,希望能够提高室内光线质量,缓解孩子在长时间用眼带来的视觉疲劳、眼睛酸痛的问题。基于多年的使用经验,我汇总了一系列关于护眼大路灯的经验和购买建议。为了更全面地呈现本期的护眼大路灯测评,我花费了一个月的时间,收集了来自不同用户的使用体验反馈,对比书客、孩视宝、雷士这3款热门护眼大路灯的性能表现。

论文速读|重新审视奖励设计与评估:用于强健人型机器人站立与行走控制的方法

论文地址:https://arxiv.org/pdf/2404.19173  这篇论文为类人机器人站立和行走(SaW)控制器的持续可衡量改进奠定了基础。通过引入一套定量实际基准测试方法,作者展示了现有控制器的优缺点,并通过基准测试指导新控制器的训练,最终实现了增强的控制器,成功处理了所有测试的扰动。结果表明,当前的RL控制器在能量效率和仿真到现实差距方面存在局限性。未来的工作应专注于在不牺牲

基于python学生信息成绩的管理系统设计与实现,很详细!

需求分析 1.1数据操纵 (1)录入并保存学生的基本信息及选课信息(如学号、姓名、性别、专业、课程名称、课程成绩); (2)可以对已经保存的学生基本信息及选课信息进行修改; (3)可以根据特定字段的值查询学生的相关信息(如通过学号查询所选的课程)和课程的相关信息(如选修某课程的所有学生); (4)可以对特定的数据条目进行删除。 1.2数据统计 学生信息统计:根据学号对学生成绩统计(如

day-49 让所有学生保持开心的分组方法数

思路 利用Collections.sort()函数对数组进行排序,依次向后遍历即可,如果nums.get(i)<i+1&&nums.get(i+1)>i+1 解题过程 注意特殊情况:全选和不选要单独讨论 Code class Solution {public int countWays(List<Integer> nums) {int len=nums.size();Collections

用基于信息熵的topsis方法实现学生成绩的综合排名

TOPSIS方法排序的基本思路是首先定义决策问题的正理想解(即最好的)和负理想解(即最坏的),然后把实际可行解(样本)和正理想解与负理想解作比较。通过计算实际可行解与正理想解和负理想解的加权欧氏距离,得出实际可行解与正理想解的接近程度,以此作为排序的依据。若某个可行解(样本)最靠近理想解,同时又最远离负理想解,则此解排序最靠前。 通常,当排序时有多个指标需要考虑时,常用“专家打分法”来确定各个指

数学题--2860. 让所有学生保持开心的分组方法数

2860. 让所有学生保持开心的分组方法数 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生: 如果能够满足下述两个条件之一,则认为第 i 位学生将会保持开心: 这位学生被选中,并且被选中的学生人数 严格大于 nums[i] 。这位学生没有被选中,并且被选中的学生人数 严格小于 nums[i]