题目

在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。 输入一个数组,求出这个数组中的逆序对。

例如在数组 {7, 5, 6, 4} 中,一共存在 5 个逆序对,
分别是 (7, 6)、(7, 5)、(7, 4)、(6, 4)和(5, 4)。

leetcode链接:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/


思想

  • 在归并排序中进行逆数对数量的增加

代码


/*** @param {number[]} nums* @return {number}*/
var reversePairs = function (nums) {if (nums.length < 2) return 0let counts = 0function mergeSort(arr) {if (arr.length == 1) return arrconst midIndex = Math.floor(arr.length / 2)const leftArr = arr.slice(0, midIndex)const rightArr = arr.slice(midIndex)return merge(mergeSort(leftArr), mergeSort(rightArr))}function merge(left, right) {const result = []while (left.length && right.length) {if (right[0] >= left[0]) {result.push(left.shift())} else {counts += left.lengthresult.push(right.shift())}}return result.concat(left).concat(right)}mergeSort(nums)return counts
}

剑指OFFER----51、数组中的逆数对(js实现)相关推荐

  1. 【LeetCode】剑指 Offer 51. 数组中的逆序对

    [LeetCode]剑指 Offer 51. 数组中的逆序对 文章目录 [LeetCode]剑指 Offer 51. 数组中的逆序对 package offer;public class Soluti ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 剑指offer之数组中重复的数(Java实现)

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

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

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

最新文章

  1. Java-Runoob:Java Stream、File、IO
  2. 【Python基础】Python初学者必须吃透这69个内置函数!
  3. android底部导航栏_Kotlin实现底部导航栏
  4. .sh文件是什么语言_FastDFS分布式文件系统的搭建安装
  5. mysql不能通过ip地址访问权限_解决mysql中只能通过localhost访问不能通过ip访问的问题...
  6. linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向
  7. mysql授权远程访问
  8. Redhat7 安装 yum
  9. html表内画斜线,使用HTML的canvas,给表格画斜线-Go语言中文社区
  10. 一个优秀的系统分析员应该具备的三个素质
  11. 阿里云ECS代理访问阿里云RDS MySQL数据库
  12. android profile 打包_Android 利用 Managed Profile 确保兼容性
  13. 不等式解集怎么取_不等式的解集怎么求
  14. Word 2010 找不到 Endnote选项
  15. 【万字干获】阿里妈妈搜索推荐广告预估模型2021思考与实践
  16. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.7 删除项的方法
  17. SQL 实验项目4-数据库安全性
  18. 从原始文档到KNN分类算法实现(一)
  19. java在记事本找不到_电脑中右键新建记事本选项不见了如何找回
  20. 智慧城市之城市应急智慧系统

热门文章

  1. Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序
  2. 基于SSM+Bootstrap的家庭装修及预算网站
  3. 话说现实的搞笑幽默短信
  4. abp mysql Failed executing DbCommand (0ms) [Parameters=[], CommandType=‘Text‘, CommandTimeout=‘30‘]
  5. GPT-3训练出「杀人狂」AI,你还敢用吗?
  6. ROS时间概念总结:ros::Time、ros::Duration、定时器ros::Timerros::Rate
  7. kali linux安装nvidia显卡驱动
  8. pythongui日历控件_Selenium2+python自动化25-js处理日历控件(修改readonly属性)
  9. 冰雪之城鸿蒙碎片,冰雪之城——土豪玩法攻略
  10. MySQL数据库高级SQL语句(三)