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 位运动员的获奖情况。
此题中主要是先使用Sorted函数对原始的score数组进行逆序排序,然后重新赋值给一个新的数组,然后找到旧数组中的值对应在新数组中的下标。
class Solution(object):def findRelativeRanks(self,score):bb=sorted(score,reverse=True)cc=[]for i in range(len(score)):dd=bb.index(score[i])if dd==0:cc.append('Gold Medal')elif dd==1:cc.append('Silver Medal')elif dd==2:cc.append('Bronze Medal')else:cc.append(str(dd+1))return cc
备注:
需要区分sorted函数和sort函数:
sort函数是一种就地排序的函数,会直接改变原始数组的值,这种排序不需要赋值,使用sort后即可生效。sorted函数使用后,不会改变原始数组的值,需要重新申请空间进行赋值,这个函数一般用于原始的数组还有用的情况下,所以上题中使用了sorted函数。