給你兩個陣列,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 中
先遍歷arr1中的元素個數,然後遍歷arr2按照arr1中對應元素的個數新增進結果陣列中,最後將剩餘的arr1中的元素按照原順序的元素個數迴圈新增。
先統計arr1中元素的數量,注意索引是arr1中的值,然後把arr2中的數按順序拿完,在把桶中剩下的按順序拿完。class
solution
else
}for
(int i=
0;i) m.
erase
(iter);}
}for
(auto i=m.
begin()
;i!=m.
end(
);i++)}
return res;}}
;
直接將arr2加上arr1減去arr2中的元素,並按照從小到大排序。然後按照arr2中的下標的順序對arr1進行排序,其餘的按照原來的順序。public
int[
]relativesortarray
(int
arr1,
int[
] arr2)
//遍歷arr2,處理arr2**現的元素
int index =0;
for(
int i : arr2)
}//遍歷nums,處理剩下arr2中未出現的元素
for(
int i =
0; i < nums.length; i++)}
return res;
}
class
solution
:def
relativesortarray
(self, arr1: list[
int]
, arr2: list[
int])-
> list[
int]
: arr2 +=
sorted
(set
(arr1)
-set
(arr2)
) arr1.sort(key=arr2.index)
return arr1
簡單 LeetCode 1122 陣列的相對排序
題目 給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 解題思路及 1.思路...
陣列的相對排序(LeetCode)
題目鏈結 給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 輸入 arr1 ...
LeetCode 陣列的相對排序
給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 輸入 arr1 2,3,1...