算法:数组中的逆序对
* @Description 数组中的逆序对
* @问题: 题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据,size<=2*10^5 示例1输入复制1,2,3,4,5,6,7,0输出
数组中的逆序对
package LG.nowcoder;/*** @Author liguo* @Description 数组中的逆序对* @问题: 题目描述* 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007* 输入描述:* 题目保证输入的数组中没有的相同的数字* <p>* 数据范围:* <p>* 对于%50的数据,size<=10^4* <p>* 对于%75的数据,size<=10^5* <p>* 对于%100的数据,size<=2*10^5* <p>* 示例1* 输入* 复制* 1,2,3,4,5,6,7,0* 输出* 复制* @思路:* @Data 2018-09-24 0:57*/ public class Solution27 {int cnt;public int InversePairs(int[] array) {cnt = 0;if (array != null)mergeSortUp2Down( array, 0, array.length - 1 );return cnt;}/** 归并排序(从上往下)*/public void mergeSortUp2Down(int[] a, int start, int end) {if (start >= end)return;int mid = (start + end) >> 1;mergeSortUp2Down( a, start, mid );mergeSortUp2Down( a, mid + 1, end );merge( a, start, mid, end );}/** 将一个数组中的两个相邻有序区间合并成一个*/public void merge(int[] a, int start, int mid, int end) {int[] tmp = new int[end - start + 1];int i = start, j = mid + 1, k = 0;while (i <= mid && j <= end) {if (a[i] <= a[j])tmp[k++] = a[i++];else {tmp[k++] = a[j++];cnt += mid - i + 1;}}while (i <= mid)tmp[k++] = a[i++];while (j <= end)tmp[k++] = a[j++];for (k = 0; k < tmp.length; k++)a[start + k] = tmp[k];} }}
数组中的逆序对,归并排序
转载于:https://www.cnblogs.com/liguo-wang/p/9694504.html
算法:数组中的逆序对相关推荐
- 数据结构与算法--数组中的逆序对
题目:在数组中的两个数字如果签名一个数字大于后面的数组,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 案例:输入数组{7,5,6,4}中一共有5个逆序对分别是{7,6},{ ...
- 【算法题目】数组中的逆序对
题目来源:<剑指offer>面试题36 题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这两个数组中的逆序对的总数.例如数组{7,5, ...
- 《剑指offer》-- 数组中的逆序对、最小的K个数、从1到n整数中1出现的次数、正则表达式匹配、数值的整数次方
一.数组中的逆序对: 1.题目: 数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出 ...
- c语言数组求逆序对,LeetCode 面试题51. 数组中的逆序对
面试题51. 数组中的逆序对 题目来源:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 题目 在数组中的两个数字,如果 ...
- 剑指offer之【数组中的逆序对】
题目: 数组中的逆序对 链接: https://www.nowcoder.com/practice/96bd6684e04a44eb80e6a68efc0ec6c5?tpId=13&tqId= ...
- 【剑指offer】_12 数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- vb.net中递归退到最外层_数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- 面试题36:数组中的逆序对
题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数.例如,有一个数组为Array[0..n] 其中有元素a[i],a[j]. ...
- 剑指offer面试题[36]-数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
最新文章
- 海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践
- GCC跟NASM联合编译
- 为什么每次关机都要关闭mysql_在机器关机时关闭mysql服务实例
- apache搭建的 webserver下载站点
- Tensorflow中placeholder传入值与feed_dict喂食器的联系与用法
- 通过GitHub Pages创建个人主页
- Java行为参数化(一)
- 设计模式002:简单工厂模式
- html剧场座位设计图,如何设计剧院座位,21个细部案例
- 双屏怎么快速切换鼠标_双屏触摸一体机功能特点解析
- jdk和tomcat
- CS229 Lecture 12
- arangoDB基本操作
- AAAI 2020 | 清华大学:借助BabelNet构建多语言义原知识库
- request、response
- 完爆面试官!2021Java高频精选面试题讲解
- 原生js实现购物车添加删除商品、计算价格功能
- 我们需要多大的电视?
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
- 张勋说:钢渣处理工艺流程图及解析