剑指offer51.数组中的逆序对

 用类似于归并排序的方法解决这道题,把数组分成左右两个数组,然后归并排序,在排序的过程中统计逆序对的个数

 

 

 

 

 

 

 

class Solution {int[] nums, tmp;public int reversePairs(int[] nums) {this.nums = nums;tmp = 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, j= m+1;for(int k = l; k<=r; k++){tmp[k] = nums[k];}for(int k = l; k<=r; k++){if(i == m+1){nums[k] = tmp[j++];}else if(j == r+1 || tmp[i] <= tmp[j]){nums[k] = tmp[i++];}else{nums[k] = tmp[j++];res += m - i + 1;//统计逆序对}}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LX04 小米触屏音箱刷机教程

说明 这里的电脑是 win11 系统&#xff0c;win10 有差别但是不影响&#xff0c;自己解决,但不要使用精简版,尽量避免使用 win7 请看完此教程再问其他问题 此教程仅供学习使用&#xff0c;安装第三方软件出现的任何问题&#xff0c;小米都不会给予售后赔偿处理&#xff01;…

Web3将自己写在合约中的代币添加到MetaMask中管理

上文 Web3带着大家根据ERC-20文档编写自己的第一个代币solidity智能合约 带着大家在智能合约中创建了一个自己的代币系统 我们可以在MetaMask中去导入 ganache环境下模拟出来的第一和第二个账号 我们这里 可以看到他们的 ETH 但看不到自己的代币符号 没关系 我们点击这下面的…

MySQL必知必会 第27章 全球化和本地化

本章介绍MySQL处理不同字符集和语言的基础知识。 27.1 字符集和校对顺序 字符集&#xff1a;字母和符号的集合编码&#xff1a;某个字符集成员的内部标识校对&#xff1a;规定字符如何比较的指令 校对很重要 使用何种字符集和校对的决定在服务器、数据库和表级进行。 27.2 …

剑指 Offer. 翻转单词顺序

输入一个英文句子&#xff0c;翻转句子中单词的顺序&#xff0c;但单词内字符的顺序不变。为简单起见&#xff0c;标点符号和普通字母一样处理。例如输入字符串"I am a student. "&#xff0c;则输出"student. a am I"。 示例 1&#xff1a; 输入: "…

[howto] 使用git时,如何忽略本地文件

背景 有一些项目&#xff0c;需要在配置中填写自己的key&#xff0c;但是那个文件还在git的版本管理中&#xff0c;如果自己填了key&#xff0c;很容易把自己的key给commit上去了。所以要么每次提交之前检查一下&#xff0c;不提交这个文件&#xff0c;要么干脆忽略&#xff0…

Python学习笔记-Django框架基础,APP,数据模型,后台管理,路由

一、Django框架简介 Django框架是Python的常用web框架&#xff0c;遵循 MVC 设计模式的框架&#xff0c;采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的&#xff0c;即是CMS&…

新能源汽车的发展

目录 1.什么是新能源 2.什么是新能源汽车 3.新能源汽车的优点 4.新能源汽车的危害 5.新能源汽车未来的发展 1.什么是新能源 新能源是指与传统能源&#xff08;如化石燃料&#xff09;相比&#xff0c;更具可再生性、清洁性和低碳排放的能源形式。它主要通过利用自然资源和可…

rust学习-面向对象

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09; 封装细节 main.rs use rust_demo::AveragedCollection;fn main() {let mut ac AveragedCollection::new();println!("ac{:?}", ac);ac.add(3);ac.add(5);ac.add(7);println!(&…

Vue如何配置eslint

eslint官网: eslint.bootcss.com eslicate如何配置 1、选择新的配置&#xff1a; 2、选择三个必选项 3、再选择Css预处理器 4、之后选择处理器 5、选择是提交的时候就进行保存模式 6、放到独立的配置文件上去 7、最后一句是将自己的数据存为预设 8、配合console不要出现的规则…

【Java中的Thread线程的简单方法介绍和使用详细分析】

文章目录 前言一、run() 和 start() 方法二、sleep() 方法三、join() 方法总结 前言 提示&#xff1a;若对Thread没有基本的了解&#xff0c;可以先阅读以下文章&#xff0c;同时部分的方法已经在如下两篇文章中介绍过了&#xff0c;本文不再重复介绍&#xff01;&#xff01;…

Java: Commons-io

Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包。 1.作用 提高IO流的开发效率。 2.FileUtils类&#xff08;文件夹/文件&#xff09; 1.常见方法 static void copyFile(File srcFile&#xff0c;File destFile): 复制文件static void copyDirectory(Fil…

【Luogu】 P3665 [USACO17OPEN] Switch Grass P

题目链接 点击打开链接 题目解法 首先给出 2 个结论&#xff1a; 最接近的不同颜色的点一定是相邻的点 证明&#xff1a;假设最接近的不同颜色的点 ( u , v ) (u,v) (u,v) 不相邻&#xff0c;那么 u , v u,v u,v 之间的路径中必有相邻的不同颜色点 ( u ′ , v ′ ) (u,v…

在nginx上部署nuxt项目

先安装Node.js 我安的18.17.0。 安装完成后&#xff0c;可以使用cmd&#xff0c;winr然cmd进入&#xff0c;测试是否安装成功。安装在哪个盘都可以测试。 测试 输入node -v 和 npm -v&#xff0c;&#xff08;中间有空格&#xff09;出现下图版本提示就是完成了NodeJS的安装…

【js Call、apply与bind 区别】

JavaScript 中的 Call、apply 和 bind 都是用来改变函数的执行上下文&#xff08;即 this 指向&#xff09;的方法&#xff0c;但它们之间有些区别&#xff1a; Call 和 apply Call 和 apply 都是 Function.prototype 的方法。它们的作用是改变函数的 this 指向&#xff0c;并…

electron 生成 arm64 的包

vue electron&#xff1a;https://blog.csdn.net/qq1195566313/article/details/131713875 打包配置修改如下 electronBuilder.build({config: {appId: com.example.app,productName: vite-electron,directories: {output: path.join(process.cwd(), "release"), …

Windows OS CMD 常用工具 の 命令合集

# First Of All 每次想要修改环境变量都要按部就班点开系统属性、高级系统设置、环境变量。这种操作实在是太繁琐了&#xff0c;对于我一个懒人来讲实在是 忍无可忍 。如果可以使用 WINR 或 CMD 直接打开系统内的一些工具&#xff0c;是不是就可以节省很多时间&#xff1b;是不…

【node.js】01-fs读写文件内容

目录 一、fs.readFile() 读取文件内容 二、fs.writeFile() 向指定的文件中写入内容 案例&#xff1a;整理txt 需求&#xff1a; 代码&#xff1a; 一、fs.readFile() 读取文件内容 代码&#xff1a; //导入fs模块&#xff0c;从来操作文件 const fs require(fs)// 2.调…

Elasticsearch查询裁剪

如果source有成千上百个字段,查询的数据没法看 某些敏感字段不能随意展示 响应数据较大影响网络带宽 查看文档信息 查看ffbf索引id为123的文档信息 GET /ffbf/_doc/123返回结果 {"_index" : "ffbf","_type" : "_doc","_id&qu…

【雕爷学编程】Arduino动手做(173)---SG90舵机双轴云台模块

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

windows配置anaconda环境变量

windows 配置 anaconda 环境变量&#xff0c;可以做到 cmd 中调用 conda 命令&#xff0c;不必每次都去找 Anaconda Prompt 文章目录 1. 找到Anaconda的安装位置2. 配置系统环境变量2.1 一步到位2.1 或者手动打开2.2 配置环境变量 3. 检查 1. 找到Anaconda的安装位置 默认安…