怎么把这段代码变成在编译器上可以运行,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;
}
意思现在结束了吗