代码是正确的但是对于超级大的输入时还是超时了。
运用分治排序的思想

import java.util.Arrays;
public class 数组中的逆序对 {public static void main(String[] args) {int[] arr = {37,40,48,90,32,5,12,3,44,13};
//      System.out.println(reversePairs(arr));System.out.println(Arrays.toString(arr));}public static int reversePairs(int[] nums) {if(nums.length==0) return 0;int sort = sort(0,nums.length-1,nums);       return sort;}private static int sort(int left, int right, int[] nums) {if(left == right) {return 0;}int ans = 0;int mid = left+(right-left)/2;ans += sort(left,mid,nums);ans += sort(mid+1,right,nums);int[] copyOf = Arrays.copyOf(nums, nums.length);int p1 = left;int p2 = mid+1;int index = left;while(p1<=mid&&p2<=right) {if(copyOf[p1]>copyOf[p2]) {nums[index++] = copyOf[p2++];ans += mid-p1+1;
//              System.out.println(mid-p1+1);
//              System.out.println(ans);}else {nums[index++] = copyOf[p1++];}}while(index<=right) {if(p1<=mid) {nums[index++] = copyOf[p1++];}else if(p2<=right){nums[index++] = copyOf[p2++];   }}return ans;}
}

力扣T51数组中的逆序对--困难相关推荐

  1. 剑指offer T51数组中的逆序对

    case1:暴力法 class Solution {/*case1:暴力法*/public int reversePairs(int[] nums) {int len = nums.length;if ...

  2. 剑指 Offer 51. 数组中的逆序对(归并排序做法)

    在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= ...

  3. 剑指Offer - 面试题51. 数组中的逆序对(归并排序,求逆序对)

    1. 题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5限制: 0 ...

  4. 剑指offer:数组中的逆序对

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

  5. C++求数组中的逆序对

    C++求数组中的逆序对. 如果在数组中的两个数字如果前面的一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数 #include<iostream> ...

  6. 【剑指offer-Java版】36数组中的逆序对

    数组中的逆序对:归并排序的另类应用 数组中的逆序对:给定的数组,如果两个数字中前面一个数字大于后面的一个,那么称为一个逆序对,数组中所有满足此关系的逆序对总数就是这个数组的逆序对 此处的实现并不优雅, ...

  7. 牛客(35)数组中的逆序对

    // 题目描述 // 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对. // 输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. ...

  8. 《剑指offer》-- 数组中的逆序对、最小的K个数、从1到n整数中1出现的次数、正则表达式匹配、数值的整数次方

    一.数组中的逆序对: 1.题目: 数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出 ...

  9. c语言数组求逆序对,LeetCode 面试题51. 数组中的逆序对

    面试题51. 数组中的逆序对 题目来源:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 题目 在数组中的两个数字,如果 ...

最新文章

  1. TWAIN Specification Chapter 4 “Advanced Application Implementation”译——应用程序端的高级实现...
  2. 断了你的后路,脚踏实地开创你的事业
  3. Windows安装MySQL 5.5完整步骤图解
  4. sql两个时间计算时间差_Java 8时间类,越用越香
  5. 【Hibernate】Hibernate实体映射——单边的一对多关系
  6. HDU4475(找规律+预处理加速)
  7. .net core 下的HttpClient、WebClient性能测试
  8. AJAX中的跨域问题:什么是跨域?如何解决跨域问题?
  9. mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据
  10. java题霸_牛客题霸每日一题 + NC50 + Java题解
  11. 5W1H系列 | Nacos 帮我们解决什么问题?(配置管理篇)
  12. linux测试函数耗时tick数,C语言中怎样测验函数执行时间
  13. Bytecoin节点搭建
  14. mysql的字段为bit时,插入数据报Data too long
  15. Microsoft Visio premium2010激活
  16. JAVA 两个队列实现栈
  17. 5G赋能新文旅 巡天遥看一千河
  18. ERP实施设防三大雷区(转载)
  19. 基于手机信令数据研究交通出行特征具体实现
  20. 搭建自己的BT下载平台服务器

热门文章

  1. 中蜂几月份自然分蜂_蜜蜂一年自然分蜂几次?
  2. 记一次被QQ邮箱钓鱼邮件事件
  3. 随手口袋记APP支持
  4. Postman~做接口测试
  5. 柳 to 杨 (转)
  6. 我的对象Girl会分身,浅克隆、深克隆
  7. linux 建树软件,新一代建树工具IQ-Tree介绍
  8. 3dmax学习记录(二)
  9. 人证核验终端设备技术
  10. python粒子风暴_气象雷达应用中常见的名词解释