1. 程式人生 > >Rrui的Leetcode刷題筆記(八)

Rrui的Leetcode刷題筆記(八)

448. 找到所有陣列中消失的數字

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        vector<int> res;
        for (int i = 0; i < nums.size(); ++i) {
            int idx = abs(nums[i]) - 1;
            nums[idx] = (nums[idx] > 0) ? -nums[idx] : nums[idx];
        }
        for (int i = 0; i < nums.size(); ++i) {
            if (nums[i] > 0) {
                res.push_back(i + 1);
            }
        }
        return res;
    }
};

506. 相對名次

class Solution {
public:
    vector<string> findRelativeRanks(vector<int>& nums) {
        
        vector<int> a=nums;
        vector<string> b(nums.size(),"0"),d{"Gold Medal", "Silver Medal", "Bronze Medal"};
        int k=1;
        sort(a.begin(),a.end());
        map<int,int> c;
        for(int i=0;i<nums.size();i++)
            c[nums[i]]=i;
        
        for(int i=nums.size()-1;i>=0;i--)
        {
            if(k<4)
            {
                b[c.find(a[i])->second]=d[nums.size()-i-1];
            }
            else b[c.find(a[i])->second]=to_string(k);
            k++;
        }
        return b;
    }
};