[LeetCode]506. Relative Ranks
题目描述
思路
用map保存
计算res的时候直接逆序遍历map即可
代码
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
class Solution {
public:
vector<string> findRelativeRanks(vector<int>& nums) {
map<int, int> m;
int rank = nums.size();
int cnt = 1;
for (int i = 0; i < nums.size(); ++i)
m[nums[i]] = i;
vector<string> res(m.size(), "");
for (map<int, int>::reverse_iterator it = m.rbegin(); it != m.rend(); it++, cnt++) {
if (cnt == 1)
res[it->second] = "Gold Medal";
else if (cnt == 2)
res[it->second] = "Silver Medal";
else if (cnt == 3)
res[it->second] = "Bronze Medal";
else
res[it->second] = to_string(cnt);
}
return res;
}
};
int main() {
vector<int> nums = { 5, 4, 3 };
vector<string> res;
Solution s;
res = s.findRelativeRanks(nums);
for (auto &p : res) {
cout << p << " ";
}
cout << endl;
system("pause");
}
本文介绍了解决LeetCode上第506题“Relative Ranks”的一种方法,通过使用C++实现的map来存储数值及其对应的索引,并采用逆序遍历来确定每个元素的排名。
345

被折叠的 条评论
为什么被折叠?



