力扣 506 相對名次 map的巧妙使用 附map基本用法
阿新 • • 發佈:2020-12-27
技術標籤:leetcode
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值,排序程式碼如下: