leetcode 506.relative ranks


class Solution {
public:
vector findRelativeRanks(vector& nums) {
// 先求出最大值,然后遍历查询比当前数大的数有几个
// 多此一举了,不需要求最大值,直接遍历就行,还是想的多了
int max_num = nums[0];
int i = 1;
while (i < nums.size()) {
max_num = max(max_num, nums[i]);
++i;
}
i = 0;
vector ret;
while (i < nums.size()) {
nums[i] = max_num - nums[i];
++i;
}
i = 0;
while (i < nums.size()) {
int count = order(nums, i);
if (count == 0) ret.push_back(“Gold Medal”);
else if (count == 1) ret.push_back(“Silver Medal”);
else if (count == 2) ret.push_back(“Bronze Medal”);
else ret.push_back(to_string(count + 1));
++i;
}
return ret;

    }
    int order(vector<int>& nums, int pos) {
        int count = 0;
        int i = 0;
        while (i < nums.size()) {
            if (i != pos && nums[pos] > nums[i]) ++count;
            ++i;
        }
        return count;
    }
};