題目:在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對。
def inverse_pairs(arrys):
if len(arrys)<2:
return 0
res = 0
length = len(arrys)
arrys_sort =sorted(arrys)
for arr in arrys_sort:
res += arrys.index(arr)
arrys.remove(arr)
return res
注:官方給的方法是利用歸併排序,時間複雜度為o(nlgn)。本文給出自己的方法,時間複雜度為o(n2),有待改進,但是實現很簡潔。先對陣列排序,利用內建的排序函式。然後依次遍歷排序後的陣列,並依次找到該數字在原陣列中的索引,索引差值即為與該數組成逆序對的個數。
51 陣列中的逆序對
面試題51.陣列中的逆序對 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 在歸併排序中進行處理 class solution private voi...
51題陣列中的逆序對
題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 思路 使用了歸併排序的思想 class solution else if m start...
ATO 51 陣列中的逆序對
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 輸入描述 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 10 4 對...