求能在编译器运行的代码,力扣1054题

怎么把这段代码变成在编译器上可以运行,leetcode1054题.
求完整代码
麻烦给出该程序的时间复杂度和伪代码或者流程图(在早上九点前回答的我之间采纳)

class Solution {
public:
    vector<int> rearrangeBarcodes(vector<int>& barcodes) 
    {
        unordered_map<int,int>Map;
        for (auto x:barcodes)
            Map[x]+=1;
        vector<pair< int,int>>p;
        for (auto x: barcodes)
            p.push_back({Map[x], x});        
        sort(p.begin(), p.end());
        reverse(p.begin(), p.end());
        int n=barcodes.size();
        vector<int>ret(n);
        int i=0;
        for (auto x: p)
        {
            ret[i]=x.second;
            i+=2;
            if(i>=n) 
            i=1;
        }
        return ret;            
    }
};

#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>

class Solution {
public:
    std::vector<int> rearrangeBarcodes(std::vector<int>& barcodes) 
    {
        std::unordered_map<int,int> Map;
        for (auto x : barcodes) {
            Map[x] += 1;
        }
        std::vector<std::pair<int, int>> p;
        for (auto x : barcodes) {
            p.push_back({Map[x], x});        
        }
        std::sort(p.begin(), p.end());
        std::reverse(p.begin(), p.end());
        int n = barcodes.size();
        std::vector<int> ret(n);
        int i = 0;
        for (auto x : p) {
            ret[i] = x.second;
            i += 2;
            if (i >= n) {
                i = 1;
            }
        }
        return ret;            
    }
};

int main() {
    Solution solution;
    std::vector<int> barcodes = {1, 1, 1, 2, 2, 3};
    std::vector<int> result = solution.rearrangeBarcodes(barcodes);
    for (int x : result) {
        std::cout << x << " ";
    }
    std::cout << std::endl;
    return 0;
}

意思现在结束了吗