c++
class Solution {
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {
int cnt[1005] = {0};
for (auto x : arr1) cnt[x]++;
int k = 0;
for (auto x : arr2) while (cnt[x]--) arr1[k++] = x;
for (int i = 0; i <= 1000; i++) {
if (cnt[i] <= 0) continue;
while (cnt[i]--) arr1[k++] = i;
}
return arr1;
}
};
js
var relativeSortArray = function(arr1, arr2) {
var cnt = new Array(1005).fill(0);
for (var x of arr1) cnt[x]++;
var k = 0;
for (var x of arr2) while (cnt[x]--) arr1[k++] = x;
for (var i = 0; i < 1005; i++) {
if (cnt[i] <= 0) continue;
while (cnt[i]--) arr1[k++] = i;
}
return arr1;
};