题目链接:https://leetcode-cn.com/problems/relative-ranks/
题目如下:
class Solution {
public:
vector<string> findRelativeRanks(vector<int>& score) {
const string str[3]={
"Gold Medal",//1
"Silver Medal",//2
"Bronze Medal",//3
};
vector<string> result;
vector<int> score1(score);//a copy of score
//sort(score1.begin(),score1.end());//默认从小到大排序
sort(score1.begin(),score1.end(),greater<int>());//从大到小排序
unordered_map<int,string> umap;//分数数值——对应的排名
int cnt=3;
for(int i=0;i<score.size();i++){
if(i<3) umap[score1[i]]=str[i];
else umap[score1[i]]=to_string(++cnt);
}
for(auto e:score){
result.push_back(umap[e]);
}
return result;
}
};