Source URL: https://leetcode.com/problems/relative-sort-array/

Given two arrays `arr1`

and `arr2`

, the elements of `arr2`

are distinct, and all elements in `arr2`

are also in `arr1`

.

Sort the elements of `arr1`

such that the relative ordering of items in `arr1`

are the same as in `arr2`

. Elements that don’t appear in `arr2`

should be placed at the end of `arr1`

in **ascending** order.

**Example 1:**

Input:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]Output:[2,2,2,1,4,3,3,9,6,7,19]

**Constraints:**

`arr1.length, arr2.length <= 1000`

`0 <= arr1[i], arr2[i] <= 1000`

- Each
`arr2[i]`

is distinct. - Each
`arr2[i]`

is in`arr1`

.

First, we put all elements from **arr2** into a hashmap. Then we count every element in **arr1**, if it is in **arr2**, we count it, else we put it to **others**. Then we output numbers from hashmap and **others**.

Running time is *2 ms* faster than *73.13%* Java submissions.

Github address：https://github.com/tinyfool/leetcode/tree/master/src/p1122

To find other sort problems, see also Sort algorithms and problems.