Skip to main content
Back to ChallengesRelative Sort ArrayMedium 25 min

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 do not appear in arr2 should be placed at the end of arr1 in ascending order.

Examples

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]
The items are sorted according to the order in arr2, and remaining items are sorted normally at the end.

Constraints

  • 1 <= arr1.length, arr2.length <= 1000
  • 0 <= arr1[i], arr2[i] <= 1000

Complexity Analysis

Time
O(N log N) using a custom sort comparator.
Space
O(N) for the map storing arr2 indices.

Test Cases

#1 Standard mapping
Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
Expected: [2,2,2,1,4,3,3,9,6,7,19]
#2 With extra elements
Input: arr1 = [28,6,22,8,44,17], arr2 = [22,28,8,6]
Expected: [22,28,8,6,17,44]
JavaScript
Output
Click "Run Code" to see output here...