1122.数组的相对排序
链接:1122.数组的相对排序
难度:Easy
标签:数组、哈希表、计数排序、排序
简介:对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
题解 1 - typescript
- 编辑时间:2020-11-14
- 执行用时:88ms
- 内存消耗:40.4MB
- 编程语言:typescript
- 解法介绍:读取 arr2 每个点的下标进行对 arr1 排序。
function relativeSortArray(arr1: number[], arr2: number[]): number[] {
const set = new Set(arr2);
const argNums = arr1.filter(v => !set.has(v)).sort((a, b) => a - b);
const map = new Map(Object.entries(arr2).map(([k, v]) => [v, Number(k)]));
arr1 = arr1.filter(v => set.has(v));
return arr1.sort((a, b) => map.get(a)! - map.get(b)!).concat(argNums);
}