当前位置: 首页 > news >正文

力扣排序506题(相对名次)

给你一个长度为n的整数数组score,其中score[i]是第 i 位运动员在比赛中的得分。
所有得分都 互不相同
运动员将根据得分 决定名次,其中名次第1的运动员得分最高,名次第2的运动员得分第2高,
依此类推。运动员的名次决定了他们的获奖情况:
名次第 1的运动员获金牌"Gold Medal"
名次第 2 的运动员获银牌"silver Medal"。
名次第 3的运动员获铜牌"Bronze Medal"
从名次第 4 到第n的运动员,只能获得他们的名次编号
(即,名次第 x的运动员获得编号"x")。
使用长度为 n的数组 answer 返回获奖,
其中answer[i]是第 i位运动员的获奖情况。
示例 1:
输入:score =[5,4,3,2,1]
输出:['Gold Medal","SilverMedal" ,"'Bronze Medal" ,"'4" ,"5"]
解释:名次为[1,2,3,4,5]

解题思路:

1.首先可以用内置函数sorted()结合key参数堆score列表进行降序排序,同时记录下每个得分对应的原始索引位置,这样就能知道排序后的得分原来是属于哪位运动员的。

2.再根据排序后的结果,按照名次规则来确定每位运动员的获奖情况。名次第1的运动员获得金牌,名次第二的运动员获得银牌,名次第三的运动员获得铜牌。从名次第四开始的运动员获得其名次编号。

3最后,将确定好获奖情况按照原始运动员的顺序放入结果数组answer中并返回

代码:

代码解析:

1.首先通过列表推导式创建了sorted_score_with_index,他是一个包含得分和原始索引的元组列表,并且按照得分进行了降序排序。

2.然后遍历这个排序后的列表,根据索引i的值来确定对应的运动员的获奖情况,并将其放入结果数组answer中对应的位置(通过原始索引index来确定位置)。最后返回answer数组,即为每位运动员的获奖情况数组。


http://www.mrgr.cn/news/70494.html

相关文章:

  • 查看浏览器的请求头
  • Windows11深度学习环境配置
  • Maven的安装与配置
  • Java 8 Stream API 在数据转换中的应用 —— 将列表转换为映射
  • IDEA2023版本中如何启动项目的多个实例
  • Linux基本指令的使用
  • 如何使用 Web Scraper API 高效采集 Facebook 用户帖子信息
  • 发布rust crate和cargo工作空间
  • SD-WAN可以搭建跨国企业组网吗?
  • 如何解决企业业务流程分散的痛点
  • 深入探讨 C++ 中的 Lambda 表达式
  • CKA认证 | Day2 K8s内部监控与日志
  • Java 多态 (Polymorphism)详解
  • C++模板进阶
  • 数据重塑:长宽数据转换【基于tidyr】
  • Scala的List
  • 科普|分享10个你不知道的公司数据安全防泄密措施,让企业数据安全牢不可破!
  • AI Weekly5:过去一周重要的AI资讯汇总(1104-1110)
  • Playwright——快速入门(初章)
  • 甘肃油糕,舌尖上的滚烫美味
  • 关于有机聚合物铝电容的使用(2)
  • RFID被装信息化监控:物联网解决方案深入分析
  • jvisualvm的使用
  • LeetCode:215. 数组中的第K个最大元素
  • springboot yml配置信息书写与获取
  • linux startup.sh shutdown.sh (kkFileView)