1122. Relative Sort Array
难度:
Easy
思路:
给定一个array和一个set,保证set中的元素均在array中出现了,要求将array按照set中的顺序排序,对于未在set中出现的元素从小到大排在array末尾
复杂排序,考虑到直接建立一个新数据结构专门进行排序,num表示该数数值,value表示该数在set中出现的位置,对于未在set中出现的元素,其value标记为set大小(即set末位置后的位置)。预处理set,之后对于新数据结构进行排序即可。
代码:
/*
Author Owen_Q
*/
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {
int n = arr1.size();
int p = arr2.size();
vector<int> pos(1010,p);
for(int i=0;i<p;i++)
pos[arr2[i]] = i;
vector<Sa> s;
s.clear();
for(int i=0;i<n;i++)
{
Sa temp;
t