思路:
创建一个新的数组vec,然后记载arr1所出现的数字的次数,
1.在vec中找到arr2中相同的数字 然后arr1从j=0开始重新填充
2.在vec中找到(arr1中有的数字,arr2中没有的数字) 然后填充arr1
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {
vector<int>vec;
vec.resize(1001,0);
for(int i=0;i<arr1.size();i++)
{
vec[arr1[i]]++;
}
//寻找arr1和arr2都有的
int j=0;
for(int i=0;i<arr2.size();i++)
{
while(vec[arr2[i]]>0)
{
arr1[j++]=arr2[i];
vec[arr2[i]]--;
}
}
//寻找arr1有arr2没有的
for(int i=0;i<1001;i++)
{
while(vec[i]>0)
{
arr1[j++]=i;
vec[i]--;
}
}
return arr1;
}
};
如有错误,多多指教!