題目描述:
給你兩個陣列,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...