1.相对名次
题目:
给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。
(注:分数越高的选手,排名越靠前。)
思路:拷贝一份数组,先排序,然后对数字前三个赋值字符串,后面赋值对应的下标
/**
* @param {number[]} nums
* @return {string[]}
*/
var findRelativeRanks = function(nums) {
const copy = nums.slice().sort((a, b) => b - a);
const l = nums.length;
const res = new Map();
for (let i = 0; i < l; i++) {
switch (i) {
case 0:
res.set(copy[i], "Gold Medal");
break;
case 1:
res.set(copy[i], "Silver Medal");
break;
case 2:
res.set(copy[i], "Bronze Medal");
break;
default:
res.set(copy[i], `${i + 1}`);
}
}
return nums.map((i) => res