博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组中的逆序对python_数组中的逆序对.md · Ainevisa/SwordAtOffer-Python - Gitee.com
阅读量:5106 次
发布时间:2019-06-13

本文共 818 字,大约阅读时间需要 2 分钟。

## 描述

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007

## 思路

merge sort

写了很久,其实没什么难的

## 代码

```c++

class Solution {

public:

int res;

// l inclusive, r exclusive

void mergesort(vector & data, int l, int r) {

// if only one element left, return

if (l + 1 >= r) return;

int m = (l + r) / 2;

mergesort(data, l, m);

mergesort(data, m, r);

// now left and right are sorted

int i = l, j = m;

while (i < m and j < r) {

if (data[i] > data[j]) {

res += m - i; // add

res %= 1000000007;

j ++ ;

} else

i ++ ;

}

// sort the entire vector

vector buf (r - l, 0);

i=l;

j=m;

int idx = 0;

for(; i

buf[idx] = data[i]

while (i

while (j

for(int i=l;i

data[i] = buf[i-l];

}

int InversePairs(vector data) {

mergesort(data, 0, data.size());

return res;

}

};

```

一键复制

编辑

Web IDE

原始数据

按行查看

历史

转载地址:http://yqudv.baihongyu.com/

你可能感兴趣的文章
【Java每日一题】20170105
查看>>
Android开发笔记(一)
查看>>
使用NFS在ARM和Linux之间传输文件
查看>>
[Swift]LeetCode1004. 最大连续1的个数 III | Max Consecutive Ones III
查看>>
[Swift]LeetCode341. 压平嵌套链表迭代器 | Flatten Nested List Iterator
查看>>
[Swift]LeetCode223. 矩形面积 | Rectangle Area
查看>>
使用nginx做负载均衡造成的session共享问题
查看>>
namespace use 理解
查看>>
[Node.js] Build microservices in Node.js with micro
查看>>
[Javascript] Identify and Deal with NaN in JavaScript
查看>>
paramiko的安装与使用
查看>>
三列布局,左右宽度固定,中间宽度自适应变化---普通格式和双飞翼格式
查看>>
jqGrid 分页
查看>>
[算法题] Remove Duplicates from Sorted Array
查看>>
vuex状态管理
查看>>
WordPress Feedweb插件跨站脚本漏洞
查看>>
DataTable 导到Excel
查看>>
mkdir() Permission denied 报错问题
查看>>
PHP 多线程采集
查看>>
C# 采用HttpWebRequest 自定义头信息 上传文件
查看>>