力扣T51数组中的逆序对--困难
代码是正确的但是对于超级大的输入时还是超时了。
运用分治排序的思想
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数组中的逆序对--困难相关推荐
- 剑指offer T51数组中的逆序对
case1:暴力法 class Solution {/*case1:暴力法*/public int reversePairs(int[] nums) {int len = nums.length;if ...
- 剑指 Offer 51. 数组中的逆序对(归并排序做法)
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= ...
- 剑指Offer - 面试题51. 数组中的逆序对(归并排序,求逆序对)
1. 题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5限制: 0 ...
- 剑指offer:数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- C++求数组中的逆序对
C++求数组中的逆序对. 如果在数组中的两个数字如果前面的一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数 #include<iostream> ...
- 【剑指offer-Java版】36数组中的逆序对
数组中的逆序对:归并排序的另类应用 数组中的逆序对:给定的数组,如果两个数字中前面一个数字大于后面的一个,那么称为一个逆序对,数组中所有满足此关系的逆序对总数就是这个数组的逆序对 此处的实现并不优雅, ...
- 牛客(35)数组中的逆序对
// 题目描述 // 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对. // 输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. ...
- 《剑指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/ 题目 在数组中的两个数字,如果 ...
最新文章
- TWAIN Specification Chapter 4 “Advanced Application Implementation”译——应用程序端的高级实现...
- 断了你的后路,脚踏实地开创你的事业
- Windows安装MySQL 5.5完整步骤图解
- sql两个时间计算时间差_Java 8时间类,越用越香
- 【Hibernate】Hibernate实体映射——单边的一对多关系
- HDU4475(找规律+预处理加速)
- .net core 下的HttpClient、WebClient性能测试
- AJAX中的跨域问题:什么是跨域?如何解决跨域问题?
- mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据
- java题霸_牛客题霸每日一题 + NC50 + Java题解
- 5W1H系列 | Nacos 帮我们解决什么问题?(配置管理篇)
- linux测试函数耗时tick数,C语言中怎样测验函数执行时间
- Bytecoin节点搭建
- mysql的字段为bit时,插入数据报Data too long
- Microsoft Visio premium2010激活
- JAVA 两个队列实现栈
- 5G赋能新文旅 巡天遥看一千河
- ERP实施设防三大雷区(转载)
- 基于手机信令数据研究交通出行特征具体实现
- 搭建自己的BT下载平台服务器