这道题按照题目要求解答就可以了
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2)
{
map<int, int>arry;
map<int, int>arry2;
vector<int>c1;
vector<int>c2;
for (int i = 0; i < arr1.size(); i++)
{
arry[arr1[i]]++;
}
for (int i = 0; i < arr2.size(); i++)
{
for (int j = 0; j < arry[arr2[i]]; j++)
{
c1.push_back(arr2[i]);
}
}
for (int i = 0; i < arr2.size(); i++)
{
arry2[arr2[i]]++;
}
for (int i = 0; i < arr1.size(); i++)
{
if (arry2[arr1[i]] == 0)
c2.push_back(arr1[i]);
}
sort(c2.begin(), c2.end());
for (int i = 0; i < c2.size(); i++)
{
c1.push_back(c2[i]);
}
return c1;
}
};
用map来计算数组中的元素 的个数,将其分离再接上就好了