1. 程式人生 > 其它 >力扣 506 相對名次 map的巧妙使用 附map基本用法

力扣 506 相對名次 map的巧妙使用 附map基本用法

技術標籤: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值,排序程式碼如下:

在這裡插入圖片描述