天天看點

leetcode:1122. 數組的相對排序(排序)

題目:

leetcode:1122. 數組的相對排序(排序)

分析:

借助一個map,一個一維的。

代碼:

map<int,int> m;
 //arr2中存在的都設為1 
 for(int i=0;i<arr2.size();i++)
 {
  m[arr2[i]]=1;
 }
 vector<int> v;
 for(int i=0;i<arr1.size();i++)
 {
  if(m[arr1[i]]==0) 
  {
   v.push_back(arr1[i]);
   continue;
  }
  m[arr1[i]]++;
 }
 sort(v.begin(),v.end());
 vector<int> t;
 for(int i=0;i<arr2.size();i++)
 {
  for(int j=1;j<m[arr2[i]];j++) t.push_back(arr2[i]);
 }
 for(int i=0;i<v.size();i++) t.push_back(v[i]);
 return t;