給你兩個陣列,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 中
class
solution
(object):
defrelativesortarray
(self, arr1, arr2)
:"""
:type arr1: list[int]
:type arr2: list[int]
:rtype: list[int]
"""sorted1=
sorted2=
for i in arr1:
if i not
in arr2:
else
: sorted2.sort(key=
lambda x:arr2.index(x)
) sorted1.sort(reverse=
false
)return sorted2+sorted1
sort() 函式用於對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式。
list
.sort(
cmp=
none
, key=
none
, reverse=
false
)
引數
cmp -- 可選引數, 如果指定了該引數會使用該引數的方法進行排序。
key -- 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。
reverse -- 排序規則,reverse = true 降序, reverse = false 公升序(預設)。
key 和 reverse 比乙個等價的 cmp 函式處理速度要快。這是因為對於每個列表元素,cmp 都會被呼叫多次,而 key 和 reverse 只被呼叫一次
返回值該方法沒有返回值,但是會對列表的物件進行排序。
sorted() 函式對所有可迭代的物件進行排序操作。
sorted
(iterable,
cmp=
none
, key=
none
, reverse=
false
)
引數說明:
1)cmp指定乙個定製的比較函式,這個函式接收兩個引數(iterable的元素),如果第乙個引數小於第二個引數,返回乙個負數;如果第乙個引數等於第二個引數,返回零;如果第乙個引數大於第二個引數,返回乙個正數。預設值為none。
2)key指定乙個接收乙個引數的函式,這個函式用於從每個元素中提取乙個用於比較的關鍵字。預設值為none。
3)reverse是乙個布林值。如果設定為true,列表元素將被倒序排列。
4)key引數的值應該是乙個函式,這個函式接收乙個引數並且返回乙個用於比較的關鍵字。對複雜物件的比較通常是使用物件的切片作為關鍵字。
返回值
返回重新排序的列表。
sort 與 sorted 區別:
sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。
list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。
要在python3中實現複雜的自定義排序,可借助cmp_to_key函式: leetcode 刷題日記
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。採用乙個帶頭節點的指標head鏈結合併後的新指標,乙個空指標pre進行迴圈載入兩個鍊錶中的節點比較兩個鍊錶節點的值,pre指標鏈結較小值的鍊錶的節點,依次遍歷兩個鍊錶,直到乙個為空停止迴圈。複雜度分析 時間複...
leetcode 刷題日記
題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。解題思路 按照最長鍊錶的長度遍歷兩個...
Leetcode 刷題日記
從去年的9月開始我已經系統地複習了一遍資料結構,因此嚴格意義上也不算從零開始,只是缺乏系統地上機練習,畢竟手寫和上機還是不一樣的。本文只散亂地記下在刷題過程中常用的工具 手法和思想,不涉及具體的資料結構的知識。向量 vector 是乙個封裝了動態大小陣列的順序容器 sequence containe...