leetcode493翻转对

与逆序对很像

使用分治的思想

[5,6,8,9,5,9]

[5,6,8] [9,5,9]

递归地将数组一分为二

此时结果ret数量=左数组翻转对+右数组翻转对+一左一右数组合翻转对

一边归并排序一边计算逆序对个数

排降序

双指针 左数组cur1 右数组cur2

以左指针为主往后遍历 与右指针比较

当nums[cur1]>2*nums[cur2]时 则nums[cur1]>所有nums[cur2]以后的数的两倍

则ret+=right-cur2+1

cur2++

当nums[cur1]<=2*nums[cur2]时

cur1++

同时要维护一个临时数组进行归并排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值