class Solution {
public:
string tostr(int n){
if(n==1)return "Gold Medal";
if(n==2)return "Silver Medal";
if(n==3)return "Bronze Medal";
return to_string(n);
}
vector<string> findRelativeRanks(vector<int>& nums) {
int n=nums.size();
vector<string>result(n);
map<int ,int>m; //map默认按照key值升序排列
for(int i=0;i<n;i++) m[nums[i]]=i; //记录每个人的分数;
for(const auto&it:m){
result[it.second]=tostr(n--);
}
//输入例子[5,4,9,2,6] 5-0 4-1 8-2 2-3 6-4 后一位是位置,前一位是该位置的分数
//升序排列后,2-3 4-1 5-0 6-4 9-2 所以tostr中n从大到小递减,现阶段第一个2-3 名次是5
return result;
}
};
map的两个值分别为key值和value值,map是按照key值进行排序的,但有时候需要按照value值进行排序,并且按照value的顺序输出key值,排序代码如下: