LeetCode_1122. Relative Sort Array 重要知識點:所有的數據結構,都可以用函數建造

重要知識點:所有的數據結構,都可以用函數建造

比如列表:c = [a[i]+b[i]) for i in range(0,len(a))] 後面加個for循環就行了

比如字典:C={i:b for b, i in enumerate(B)}

sorted 函數 的key傳入的是可以對輸入數列做操作的函數

Input:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

Output:[2,2,2,1,4,3,3,9,6,7,19]

將arr1根據arr2的順序排序

方法一:

return sorted(arr1, key=(arr2+sorted(arr1)).index)

解釋:

首先,整個的排序過程是,如果arr1的值在arr2中,則按照arr2排序,反之按照arr1排序

所以我用arr2+已經排序好的arr1,然後用sorted函數,key是index

方法二:

        A=sorted(set(arr1)-set(arr2))

        B=arr2+A

        k = {b: i for i, b in enumerate(B)}

        return sorted(arr1, key=lambda a: k.get(a))

我以前也不知道字典還能這麼搞,先生成一個字典,內容是B的值加B的index


然後把B變成arr2+已經排序好的arr1比arr2多的元素、

使用sorted函數,key是字典的index

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章