Relative Ranks (Easy Google)
Input: [5, 4, 3, 2, 1]
Output: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]Basic Idea:
class Solution { public: vector<string> findRelativeRanks(vector<int>& nums) { vector<vector<int>> arr; // n*2 array, store index for each score for (int i = 0; i < nums.size(); ++i) { arr.push_back({nums[i], i}); } auto comp = [](vector<int>& a, vector<int>& b)->bool{ return a[0] > b[0]; }; sort(arr.begin(), arr.end(), comp); vector<string> res(nums.size()); for (int i = 0; i < arr.size(); ++i) { string s; if (i == 0) s = "Gold Medal"; else if (i == 1) s = "Silver Medal"; else if (i == 2) s = "Bronze Medal"; else s = to_string(i + 1); res[arr[i][1]] = s; } return res; } };