剑指OFFER----51、数组中的逆数对(js实现)
题目
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。 输入一个数组,求出这个数组中的逆序对。
例如在数组 {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实现)相关推荐
- 【LeetCode】剑指 Offer 51. 数组中的逆序对
[LeetCode]剑指 Offer 51. 数组中的逆序对 文章目录 [LeetCode]剑指 Offer 51. 数组中的逆序对 package offer;public class Soluti ...
- 剑指 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之数组中重复的数(Java实现)
数组中重复的数 NowCoder 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的, 也不知道每个数字重复几次.请找出数 ...
- 剑指offer T51数组中的逆序对
case1:暴力法 class Solution {/*case1:暴力法*/public int reversePairs(int[] nums) {int len = nums.length;if ...
最新文章
- Java-Runoob:Java Stream、File、IO
- 【Python基础】Python初学者必须吃透这69个内置函数!
- android底部导航栏_Kotlin实现底部导航栏
- .sh文件是什么语言_FastDFS分布式文件系统的搭建安装
- mysql不能通过ip地址访问权限_解决mysql中只能通过localhost访问不能通过ip访问的问题...
- linux重定向文件被修改后,Linux服务器修改.htaccess文件实现301重定向
- mysql授权远程访问
- Redhat7 安装 yum
- html表内画斜线,使用HTML的canvas,给表格画斜线-Go语言中文社区
- 一个优秀的系统分析员应该具备的三个素质
- 阿里云ECS代理访问阿里云RDS MySQL数据库
- android profile 打包_Android 利用 Managed Profile 确保兼容性
- 不等式解集怎么取_不等式的解集怎么求
- Word 2010 找不到 Endnote选项
- 【万字干获】阿里妈妈搜索推荐广告预估模型2021思考与实践
- 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.7 删除项的方法
- SQL 实验项目4-数据库安全性
- 从原始文档到KNN分类算法实现(一)
- java在记事本找不到_电脑中右键新建记事本选项不见了如何找回
- 智慧城市之城市应急智慧系统
热门文章
- Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序
- 基于SSM+Bootstrap的家庭装修及预算网站
- 话说现实的搞笑幽默短信
- abp mysql Failed executing DbCommand (0ms) [Parameters=[], CommandType=‘Text‘, CommandTimeout=‘30‘]
- GPT-3训练出「杀人狂」AI,你还敢用吗?
- ROS时间概念总结:ros::Time、ros::Duration、定时器ros::Timerros::Rate
- kali linux安装nvidia显卡驱动
- pythongui日历控件_Selenium2+python自动化25-js处理日历控件(修改readonly属性)
- 冰雪之城鸿蒙碎片,冰雪之城——土豪玩法攻略
- MySQL数据库高级SQL语句(三)