数组中的逆序对
来源:互联网 发布:阿里云设置伪静态 编辑:程序博客网 时间:2024/06/04 19:14
//书上的方法:class Solution {public: int InvertPairsNum(int* data, int* copy,int start, int end) { if(start==end){ copy[start]=data[start]; return 0; } int res = 0; int length = (end-start)/2; int left = InvertPairsNum(data,copy, start, start+length)%1000000007; int right = InvertPairsNum(data,copy,start+length+1, end)%1000000007; int i = start+length, j = end, count = 0; int copyindex = end; while(i>=start&&j>=start+length+1){ if(data[i]>data[j]){ copy[copyindex--]=data[i--]; count+=j-start-length; if(count>=1000000007) count%=1000000007; } else{ copy[copyindex--]=data[j--]; } } for(;i>=start;i--) copy[copyindex--]=data[i]; for(;j>=start+length+1;j--) copy[copyindex--]=data[j]; for(int k = start; k<=end; k++) data[k] = copy[k]; return (count+left+right)%1000000007; } int InversePairs(vector<int> data) { int len = data.size(); if(len<=0) return 0; int* copy = new int[len]; for(int i = 0 ;i< len; i++) copy[i]=data[i]; int count = InvertPairsNum(&data[0],copy, 0, len-1); delete[] copy; return count; }};
阅读全文
0 0
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- 数组中的逆序对
- JavaScript基础(一)
- px4学习计划闫刚
- 高级网络配置
- linux常用命令(目录操作命令)
- Java 数学函数与常量
- 数组中的逆序对
- Maven| 3.Eclipse中设置Maven
- 使用Nginx+Tomcat访问本地目录
- rawsocket 使用小结
- hdoj1025 Constructing Roads In JGShining's Kingdom(DP+二分法)
- 自定义View最简单的创建
- 对opencl简单理解和缓冲区以及相关操作的简单理解(完结)
- 获取IP地址以及响应的区域信息
- 备份,字符串和日期函数