簡單 LeetCode 1122 陣列的相對排序

2021-10-06 03:07:44 字數 741 閱讀 6221

題目

給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每個元素都出現在 arr1 中

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

示例

解題思路及**

1. 思路

遍歷arr2中每個元素,取出arr1中對應的元素放入結果陣列中,同時刪除arr1中對應的元素,最後res中存放了與arr2中對應順序的元素,arr1中剩下arr2中沒有的元素,最後將res與排序後的arr1拼接在一起即為結果。

2. **

var relativesortarray = function(arr1, arr2) }}

arr1.sort((a, b) => a - b);

return res.concat(arr1);

};

看到乙個高讚題解:採用map儲存arr1中的每個數以及出現次數,即key: value鍵值對,對arr2進行遍歷,將arr1的對應元素放入結果陣列中,例如key:value 鍵值對 為2: 3, 則在結果陣列中插入3個2。直到對應元素的出現次數變為0,繼續遍歷arr2中的下乙個元素。遍歷完arr2後,將map對應出現次數》1的元素依次放入結果陣列中,因為map中是按順序儲存的。

LeetCode 1122 陣列的相對排序

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

LeetCode1122 陣列的相對排序

給你兩個陣列,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,3,2,4,6,7,9,2,...