链接:https://www.nowcoder.com/questionTerminal/96bd6684e04a44eb80e6a68efc0ec6c5
来源:牛客网
public class Solution {
public int InversePairs(int [] array) {
if(array==null||array.length==0)
{
return 0;
}
int[] copy = new int[array.length];
for(int i=0;i<array.length;i++)
{
copy[i] = array[i];
}
int count = InversePairsCore(array,copy,0,array.length-1);//数值过大求余
return count;
}
private int InversePairsCore(int[] array,int[] copy,int low,int high)
{
if(low==high)
{
return 0;
}
int mid = (low+high)>>1;
int leftCount = InversePairsCore(array,copy,low,mid)%1000000007;
int rightCount = InversePairsCore(array,copy,mid+1,high)%1000000007;
int count = 0;
int i=mid;
int j=high;
int locCopy = high;
while(i>=low&&j>mid)
{
if(array[i]>array[j])
{
count += j-mid;
copy[locCopy--] = array[i--];
if(count>=1000000007)//数值过大求余
{
count%=1000000007;
}
}
else
{
copy[locCopy--] = array[j--];
}
}
for(;i>=low;i--)
{
copy[locCopy--]=array[i];
}
for(;j>mid;j--)
{
copy[locCopy--]=array[j];
}
for(int s=low;s<=high;s++)
{
array[s] = copy[s];
}
return (leftCount+rightCount+count)%1000000007;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
50.第一个只出现一次的字符 50.字符流中第一个不重复的字符 51.数组中的逆序对 Array 常考 52.两个链表的第一个公共结点 Linked List 53.数字在排序数组中出现的次数 Binary Search 常考 54.二叉搜索树中的第k个结点 Tree 55.二叉树的深度 Tree 55.平衡二叉树 Tree 56.数组中只出现一次的数字 Array 57.和为S的两个数字 Array 57.和为S的连续正数序列 Array 关注 58.翻转单词序列 String 58.左旋转字符串 String 59.滑动窗口的最大值 Queue 常考 60.n个骰子的点数 61.扑克牌顺子 62.孩子们的游戏 Math 63.股票的最大利润 Math 64.求1+2+3+...+n 65.不用加减乘除做加法 Bit Manipulation 66.构建乘积数组 Array 67.把字符串转成整数 Bit Manipulation 关注 68.树中两个节点的最低公共祖先 常考
资源推荐
资源详情
资源评论
收起资源包目录
目前最火的python编程题之3.zip (24个子文件)
目前最火的python编程题之3
50.第一个只出现一次的字符
50.第一个只出现一次的字符.py 297B
51.数组中的逆序对
51.数组中的逆序对.cpp 2KB
58.翻转单词序列
58.翻转单词顺序列.cpp 597B
58.翻转单词顺序列.py 651B
57.和为S的两个数字
57.和为S的两个数字.py 475B
57.和为S的连续正数序列
57.和为S的连续正数序列(math).py 476B
57.和为S的连续正数序列(bin search).py 888B
57.和为S的连续正数序列(slide window).py 523B
65.不用加减乘除做加法
65.不用加减法乘除做加法.cpp 193B
55.二叉树的深度
55.二叉树的深度.py 641B
62.孩子们的游戏(圆圈中最后剩下的数)
62.孩子们的游戏(圆圈中最后剩下的数).py 275B
.gitattributes 66B
61.扑克牌顺子
61.扑克牌顺子.py 570B
55.平衡二叉树
55.平衡二叉树.py 727B
54.二叉搜索树的第k个结点
54.二叉搜索树的第k个结点.py 669B
56.数组中只出现一次的数字
56.数组中只出现一次的数字.py 760B
59.滑动窗口的最大值
59.滑动窗口的最大值.py 519B
66.构建乘积数组
66.构建乘积数组.py 350B
52.两个链表的第一个公共结点
52.两个链表的第一个公共结点.py 864B
67.把字符串转换成整数
67.把字符串转换成整数.py 691B
.gitignore 2KB
50.字符流中第一个不重复的字符
50.字符流中第一个不重复的字符.py 583B
53.数字在排序数组中出现的次数
53.数字在排序数组中的位置.py 696B
58.左旋转字符串
58.左旋转字符串.py 465B
共 24 条
- 1
资源评论
梦回阑珊
- 粉丝: 2444
- 资源: 619
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功