Leedcode-相对名次
自己写的:
from typing import List class Solution: def findRelativeRanks(self, score: List[int]) -> List[str]: # 获取成绩列表的长度 n = len(score) # 复制原始成绩列表 score_former = score # 对成绩列表进行排序并逆序排列 score_after = sorted(score) score_after.reverse() # 初始化结果列表,长度与成绩列表相同,初始值为-1 res = [-1] * n # 遍历每一个成绩,找到其排名并分配对应的奖牌或排名 for i in range(n): # 找到原始成绩在排序后列表中的排名(加1表示实际排名) ranking = score_after.index(score_former[i]) + 1 # 根据排名分配奖牌或排名 if ranking == 1: res[i] = 'Gold Medal' # 第一名:金牌 elif ranking == 2: res[i] = 'Silver Medal' # 第二名:银牌 elif ranking == 3: res[i] = 'Bronze Medal' # 第三名:铜牌 else: res[i] = str(ranking) # 其他名次:直接使用数字排名 # 返回结果列表 return res
gpt优化:
class Solution: def findRelativeRanks(self, score: List[int]) -> List[str]: # 获取分数的个数 n = len(score) # 对分数进行排序,并在排序时指定降序排列 sorted_scores = sorted(score, reverse=True) # 创建一个字典,键为分数,值为排名 rank_dict = {sorted_scores[i]: i + 1 for i in range(n)} # 初始化结果列表 res = [''] * n # 遍历原始分数列表,填充结果 for i in range(n): ranking = rank_dict[score[i]] if ranking == 1: res[i] = 'Gold Medal' elif ranking == 2: res[i] = 'Silver Medal' elif ranking == 3: res[i] = 'Bronze Medal' else: res[i] = str(ranking) # 返回结果列表 return res
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)