【LeetCode】剑指 Offer 51. 数组中的逆序对
【LeetCode】剑指 Offer 51. 数组中的逆序对
文章目录
- 【LeetCode】剑指 Offer 51. 数组中的逆序对
package offer;public class Solution51 {public static void main(String[] args) {Solution51 solution = new Solution51();int[] nums = {7,5,6,4};System.out.println(solution.method(nums));}int[] nums;int[] temp;private int method(int[] nums){this.nums = nums;temp = new int[nums.length];return mergeSort(0, nums.length - 1);}private int mergeSort(int l, int r){if(l >= r) return 0;int m = (l + r) / 2;int res = mergeSort(l, m) + mergeSort(m + 1, r);int i = l;int j = m + 1;for(int k = l; k <= r; k++){temp[k] = nums[k];}for(int k = l; k <= r; k++){if(i == m + 1){nums[k] = temp[j++];}else if(j == r + 1 || temp[i] <= temp[j]){nums[k] = temp[i++];}else{nums[k] = temp[j++];res += m - i + 1;}}return res;}
}//时间复杂度为 O(nlogn)
//空间复杂度为 O(n)
【LeetCode】剑指 Offer 51. 数组中的逆序对相关推荐
- 剑指 Offer 51. 数组中的逆序对(归并排序做法)
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= ...
- 【LeetCode笔记】剑指Offer 51. 数组中的逆序对(Java、分治)
题目描述 多说无益-直接冲代码吧! 思路 && 代码 1. 暴力 O(n2n^2n2) 乍一看这题目,很难不直接用暴力法冲一冲(也就双层循环的事) 但是不出意料地超时啦-想一想,O(n ...
- 【剑指offer】数组中的逆序对
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/27520535 转载请注明出处:http:// ...
- 剑指offer:数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- 剑指offer之数组中的逆序对
1 问题 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- 《剑指offer》-- 数组中的逆序对、最小的K个数、从1到n整数中1出现的次数、正则表达式匹配、数值的整数次方
一.数组中的逆序对: 1.题目: 数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出 ...
- 剑指offer T51数组中的逆序对
case1:暴力法 class Solution {/*case1:暴力法*/public int reversePairs(int[] nums) {int len = nums.length;if ...
- leetcode 剑指 Offer 03. 数组中重复的数字 抽屉原理 一个萝卜一个坑
找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...
- Leetcode 剑指 Offer 03. 数组中重复的数字 (每日一题 20210614)
找出数组中重复的数字.在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复 ...
最新文章
- windows server 2008 R2 初试Hyper-V(一)
- C++ - 实现strcmp函数
- 1.9 matlab字符与字符串
- converter 无法查询活动linux源计算机,【VMware】Converter迁移linux系统虚拟机
- linux集群命令关闭其中一台,自己整理的一点Linux命令集
- Linux笔记-centos安装elasticsearch7版本
- 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
- LeetCode 62.不同路径(动态规划)
- hdu 1255 覆盖的面积 线段树扫描线求重叠面积
- URLDecoder与URLDecoder的简单了解
- 28款数据恢复软件对比测试
- matlab符号运算报错,matlab符号运算符
- python实现seo疯狂外链发送工具
- 90后新晋父母的根据地——万物心选
- PS2021中使用Nik插件崩溃闪退|Nik Collection不兼容cc2021闪退的解决方法
- 一位自我怀疑的Android开发者的灵魂拷问:你够好吗?
- Java线程并发协作与任务定时调度
- 推荐多款好看的报表图表配色方案(适用于PPT,大屏可视化分析)
- R语言ggplot2可视化在轴标签、轴标题中添加大于号、等于号等实战
- PHP多进程 - opcode缓存与用户缓存(APC, XCache, eAcclerator,Zend Opcache,Yac)
热门文章
- ok计数器使用教程_玩转透视表!Excel教程 Excel入门 Excel技巧 Excel快捷键 Excel学习!...
- android手动创建数据表,Android开发—数据库应用—手动创建(SQLite)数据库--手动创建数据表(table)...
- 力扣有没有java_【Java】一篇文章带你玩转用Java刷力扣
- 【C++对象模型】第一章 关于对象
- Linux内核实验作业七
- spark基础之checkpoint机制
- java 图文生成图片_java生成图片
- java两个数组中不同的数字_java将两个数组中不同的数字去掉一个剩下的保存到一个新的数组中...
- class会不会回收?用不到的class怎么回收_5分钟!用Java实现目标检测 | PyTorch
- http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库