class Solution {
public:
vector<string> findRelativeRanks(vector<int>& score) {
//获取大小
int n=score.size();
string desc[3] = {"Gold Medal","Silver Medal","Bronze Medal"};
vector<pair<int,int>> arr;
//emplace_back()是c++11的新特性和push_back()的区别在于push_back()方法要调用构造函数和复制构造函数,这也就代表着要先构造一个临时对象,然后把临时的copy构造函数拷贝或者移动到容器最后面。而emplace_back()在实现时,则是直接在容器的尾部创建这个元素,省去了拷贝或移动元素的过程
for(int i=0;i<n;i++)
{
//make_pair 合二为一
arr.emplace_back(make_pair(-score[i],i));
}
//从小到大
sort(arr.begin(),arr.end());
vector<string>ans(n);
for(int j=0;j<n;j++)
{
if(j>=3)
{
ans[arr[j].second] = to_string(j+1);
}
else
{
ans[arr[j].second]=desc[j];
}
}
return ans;
}
};
相对名次1
最新推荐文章于 2024-06-15 10:30:23 发布