LeetCode 陣列的相對排序

2021-10-10 13:40:55 字數 768 閱讀 4813

給你兩個陣列,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 中

因為陣列元素的值<1000,我們直接用輔助陣列來做重新生成排序陣列,即用下標代表元素值,值代表個數。(陣列下標標記法用來排序主要是可能造成空間太浪費,這裡是因為元素值小才這樣做);

這樣的好處是,即可跟arr2的元素直接對齊,後續的排序又可直接生成,時間控制在o(n),即一趟arr1統計,一趟arr2對齊,一趟arr1後續元素排序。

class solution 

int j=0;

for(int i=0;i0)

}for(int i=0;i0)

}return arr1;

}}

陣列的相對排序(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...

LeetCode 1122 陣列的相對排序

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