程式語言 - LeetCode - C++ - 506. Relative Ranks



題目:


解答:

class Solution {
public:
    vector<string> findRelativeRanks(vector<int>& score) {
        int n = score.size();
        unordered_map<int, int> mp;
        vector<int> v(score);

        sort(v.begin(), v.end(), greater<int>());

        for (int i = 0; i < n; ++i) {
            mp[v[i]] = i + 1;
        }

        vector<string> ans;

        for (int s : score) {
            int r = mp[s];

            switch (r) {
            case 1:
                ans.push_back("Gold Medal");
                break;
            case 2:
                ans.push_back("Silver Medal");
                break;
            case 3:
                ans.push_back("Bronze Medal");
                break;
            default:
                ans.push_back(to_string(r));
                break;
            }
        }

        return ans;
    }
};