关注
```go var count int func InversePairs(nums []int) int { count = 0 temp := make([]int, len(nums)) mergeSort(nums, temp, 0, len(nums)-1) return count } func insertSort(nums []int, left, right int) { for i := left + 1; i <= right; i++ { t := nums[i] j := i for j > left && t < nums[j-1] { count++ nums[j] = nums[j-1] j-- } nums[j] = t } } func mergeSort(nums, temp []int, left, right int) { if right - left + 1 < 10 { insertSort(nums, left, right) return } mid := (left + right) / 2 mergeSort(nums, temp, left, mid) mergeSort(nums, temp, mid+1, right) if nums[mid] <= nums[mid+1] { return } merge(nums, temp, left, mid, right) } func merge(nums, temp []int, left, mid, right int) { copy(temp, nums) i := left j := mid+1 for k := left; k <= right; k++ { if i > mid { nums[k] = temp[j] j++ } else if j > right { nums[k] = temp[i] i++ } else if temp[i] <= temp[j] { nums[k] = temp[i] i++ } else { nums[k] = temp[j] count += mid+1 - i count %= 1000000007 j++ } } } ```
1
相关推荐
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
11479次浏览 147人参与
# 你的mentor是什么样的人? #
50973次浏览 718人参与
# 程序员找工作至少要刷多少题? #
19945次浏览 255人参与
# 我和mentor的爱恨情仇 #
106110次浏览 944人参与
# 论秋招对个人心气的改变 #
12207次浏览 168人参与
# 校招第一份工作你干了多久? #
136569次浏览 597人参与
# 机械人避雷的岗位/公司 #
43792次浏览 303人参与
# 为了减少AI幻觉,你注入过哪些设定? #
5311次浏览 162人参与
# 设计人如何选offer #
189582次浏览 868人参与
# 你的秋招进行到哪一步了 #
2530242次浏览 23253人参与
# 机械人还在等华为开奖吗? #
312045次浏览 1582人参与
# 牛客AI体验站 #
7238次浏览 197人参与
# 重来一次,我还会选择这个专业吗 #
411143次浏览 3898人参与
# 我现在比当时_,你想录用我吗 #
9093次浏览 116人参与
# 12306一秒售罄,你抢到回家的票了吗? #
2143次浏览 50人参与
# 一张图晒一下你的AI员工 #
5436次浏览 121人参与
# 研究所VS国企,该如何选 #
244437次浏览 1982人参与
# AI Coding的使用心得 #
4925次浏览 105人参与
# 刚入职的你踩过哪些坑 #
7215次浏览 130人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7912次浏览 121人参与
OPPO公司福利 1111人发布
查看30道真题和解析