1122 陣列的相對排序

2021-10-09 12:18:56 字數 942 閱讀 4542

題目描述:

給你兩個陣列,arr1 和 arr2,

arr2 中的元素各不相同

arr2 中的每個元素都出現在 arr1 中

對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 **現過的元素需要按照公升序放在 arr1 的末尾。

示例:

輸入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

輸出:[2,2,2,1,4,3,3,9,6,7,19]

arr1.length, arr2.length <= 1000

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

arr2 中的元素 arr2[i] 各不相同

arr2 中的每個元素 arr2[i] 都出現在 arr1 中

方法1:

主要思路:

(1)先對陣列中的元素進行統計,再將統計的數字按照另乙個陣列中的元素的相對順序,放回到原陣列,並把剩餘的元素放回原陣列之後,對剩餘的元素進行排序;

class

solution

int pos=0;

//按照另乙個陣列中的元素的相對順序進行排序

for(

int&num:arr2)

mp.erase

(num);}

}int i=pos;

//將剩餘的元素進行複製和排序

for(

auto

&it:mp)

}sort

(arr1.

begin()

+pos,arr1.

end())

;return arr1;}}

;

1122 陣列的相對排序

給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 輸入 arr1 2,3,1...

1122 陣列的相對排序

給你兩個陣列,arr1和arr2,對arr1中的元素進行排序,使arr1中項的相對順序和arr2中的相對順序相同。未在arr2 現過的元素需要按照公升序放在arr1的末尾。示例 輸入 arr1 2,3,1,3,2,4,6,7,9,2,19 arr2 2,1,4,3,9,6 輸出 2,2,2,1,4,...

1122 陣列的相對排序

給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 輸入 arr1 2,3,1...