劍指 offer 51. 陣列中的逆序對
問題描述:
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1:
輸入: [7,5,6,4]
輸出: 5
限制:0 <= 陣列長度 <= 50000
object solution
def mergesort(nums: array[int], left: int, right: int): long =
val mid = (left + right) >> 1
var res: long = mergesort(nums, left, mid) + mergesort(nums, mid+1, right)
var k = 0
var i = left
var j = mid + 1
while (i <= mid && j <= right) else
}while (i <= mid)
while (j <= right)
i = left
j = 0
while (i <= right)
return res
}}
var tmp int
func reversepairs(nums int) int
func mergesort(nums int, left, right int) int
mid := (left + right) >> 1
res := mergesort(nums, left, mid) + mergesort(nums, mid+1, right)
i, j, k := left, mid+1, 0
for i <= mid && j <= right else
}for i <= mid
for j <= right
for i, j := left, 0; i <= right;
return res
}
劍指Offer 51 陣列中的逆序對
在陣列中的兩個數字如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。樣例輸入 1,2,3,4,5,6,0 輸出 6 class solution object definversepairs self,nums type nums list in...
劍指offer 51 陣列中的逆序對
這到題的題目為 陣列中的兩個數字如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這兩個陣列中逆序對的總數。解題思路 將陣列分為若干個子陣列,其中每乙個數為乙個子陣列,先統計子陣列內部之間的逆序對,並對它們進行排序。然後統計相鄰兩個子陣列之間的逆序對用於對它們進行排序,直...
劍指offer51 陣列中的逆序對
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 輸入描述 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 10 4對於...