搞一个标记数组,模拟扫一遍。
这么写很麻烦,后续还会有优化。
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {
#define N 1000
int cnt[N + 5] = {0};
vector<int> temp, ans;
for (int i = 0; i < arr2.size(); i++) {
for (int j = 0; j < arr1.size(); j++) {
if (arr2[i] == arr1[j]) {
ans.push_back(arr1[j]);
cnt[j] = 1;
}
}
}
for (int i = 0; i < arr1.size(); i++) {
if (cnt[i]) continue;
temp.push_back(arr1[i]);
}
sort(temp.begin(), temp.end());
for (int i = 0; i < temp.size(); i++) {
ans.push_back(temp[i]);
}
return ans;
}
};
未完待续...