class Solution {
public String[] findRelativeRanks(int[] score) {
int n = score.length;
String[] topThree = {"Gold Medal", "Silver Medal", "Bronze Medal"}; // 前三名
String[] res = new String[n]; // 保存结果
int[] clone = score.clone(); //复制socre
Arrays.sort(clone); //对得分进行排序
Map<Integer,Integer> map = new HashMap<>();
for(int i=0;i<n;i++){
map.put(score[i],i); //哈希表的key,value分别存放第i位运动员的得分和i
}
for(int i=0;i<n;i++){
if(i<3){
//n-i-1:clone排序后是递增的,所以我们从后往前
//根据得分查到该运动员在score中的位置,并在该位置赋值该运动员的名次
res[map.get(clone[n-i-1])] = topThree[i]; //前三名赋值金银铜牌
}else{
res[map.get(clone[n-i-1])] = Integer.toString(i + 1); //第4 名及以后赋值名次
}
}
return res;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/121681900
内容来源于网络,如有侵权,请联系作者删除!