【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. 数组中的逆序对相关推荐

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

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

  2. 【LeetCode笔记】剑指Offer 51. 数组中的逆序对(Java、分治)

    题目描述 多说无益-直接冲代码吧! 思路 && 代码 1. 暴力 O(n2n^2n2) 乍一看这题目,很难不直接用暴力法冲一冲(也就双层循环的事) 但是不出意料地超时啦-想一想,O(n ...

  3. 【剑指offer】数组中的逆序对

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/27520535 转载请注明出处:http:// ...

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

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

  5. 剑指offer之数组中的逆序对

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

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

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

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

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

  8. leetcode 剑指 Offer 03. 数组中重复的数字 抽屉原理 一个萝卜一个坑

    找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...

  9. Leetcode 剑指 Offer 03. 数组中重复的数字 (每日一题 20210614)

    找出数组中重复的数字.在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复 ...

最新文章

  1. windows server 2008 R2 初试Hyper-V(一)
  2. C++ - 实现strcmp函数
  3. 1.9 matlab字符与字符串
  4. converter 无法查询活动linux源计算机,【VMware】Converter迁移linux系统虚拟机
  5. linux集群命令关闭其中一台,自己整理的一点Linux命令集
  6. Linux笔记-centos安装elasticsearch7版本
  7. 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
  8. LeetCode 62.不同路径(动态规划)
  9. hdu 1255 覆盖的面积 线段树扫描线求重叠面积
  10. URLDecoder与URLDecoder的简单了解
  11. 28款数据恢复软件对比测试
  12. matlab符号运算报错,matlab符号运算符
  13. python实现seo疯狂外链发送工具
  14. 90后新晋父母的根据地——万物心选
  15. PS2021中使用Nik插件崩溃闪退|Nik Collection不兼容cc2021闪退的解决方法
  16. 一位自我怀疑的Android开发者的灵魂拷问:你够好吗?
  17. Java线程并发协作与任务定时调度
  18. 推荐多款好看的报表图表配色方案(适用于PPT,大屏可视化分析)
  19. R语言ggplot2可视化在轴标签、轴标题中添加大于号、等于号等实战
  20. PHP多进程 - opcode缓存与用户缓存(APC, XCache, eAcclerator,Zend Opcache,Yac)

热门文章

  1. ok计数器使用教程_玩转透视表!Excel教程 Excel入门 Excel技巧 Excel快捷键 Excel学习!...
  2. android手动创建数据表,Android开发—数据库应用—手动创建(SQLite)数据库--手动创建数据表(table)...
  3. 力扣有没有java_【Java】一篇文章带你玩转用Java刷力扣
  4. 【C++对象模型】第一章 关于对象
  5. Linux内核实验作业七
  6. spark基础之checkpoint机制
  7. java 图文生成图片_java生成图片
  8. java两个数组中不同的数字_java将两个数组中不同的数字去掉一个剩下的保存到一个新的数组中...
  9. class会不会回收?用不到的class怎么回收_5分钟!用Java实现目标检测 | PyTorch
  10. http 访问mysql数据库_04.Http协议之GET请求与访问MySQL数据库