leetcode 493 翻转对

一、题目描述

二、解题思路

本题的思路与逆序数的思路相似,采用归并排序的思路来实现。leetcode LCR 170.交易逆序对的总数-CSDN博客

注意:但是逆序数的ret更新在左、右区间合并时更新,但本题ret更新在左、右区间合并前更新。

三、代码实现

时间复杂度:T(n)=O(nlogn)

空间复杂度:S(n)=O(n)

class Solution {vector<int> tmp;
public:int reversePairs(vector<int>& nums) {//借助归并排序的思路tmp.resize(nums.size());return mergeSort(nums,0,nums.size()-1);}int mergeSort(vector<int>& nums,int left,int right){//递归出口if(left>=right) return 0;//1.寻找中间位置int mid=left+(right-left)/2;//2.左边寻找+左排序,右边寻找+右排序int ret=0;ret+=mergeSort(nums,left,mid);ret+=mergeSort(nums,mid+1,right);//3.一左一右寻找翻转对int cur1=left,cur2=mid+1;while(cur1<=mid&&cur2<=right){if(nums[cur1]<=2LL*nums[cur2])cur1++;else{ret+=mid-cur1+1;cur2++;}}//4.左右两路归并cur1=left,cur2=mid+1;int i=0;while(cur1<=mid&&cur2<=right){if(nums[cur1]<=nums[cur2]) tmp[i++]=nums[cur1++];else tmp[i++]=nums[cur2++];}//5.处理没有归并完的部分while(cur1<=mid) tmp[i++]=nums[cur1++];while(cur2<=right) tmp[i++]=nums[cur2++];//6.还原nums数组for(int j=left;j<=right;j++)nums[j]=tmp[j-left];return ret; }
};

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

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

相关文章

初识微服务-nacos配置中心

配置中心 概述 配置中心是微服务中不可或缺的组件&#xff0c;因为如果没有配置中心&#xff0c;那么各个微服务的的配置信息无法得到统一和管理&#xff0c;会变得冗余。 :::color4 配置中心是用于管理应用程序配置信息的工具 集中管理配置&#xff1a;解决微服务架构下配置分…

Android webview更新记录-aosp

一、下载 webview下载地址&#xff0c;感谢火哥分享&#xff0c;版本很全。 https://www.firepx.com/app/android-system-webview/ 二、更新 external/chromium-webview/prebuilt 具体更新那个目录&#xff0c;需要查看编译架构 这个看你的lunch就行&#xff0c;这里我的是a…

无感FOC(无传感器磁场定向控制)

我们来详细解析无感FOC&#xff08;无传感器磁场定向控制&#xff09;中的高频方波注入&#xff08;High-Frequency Square-Wave Injection, HFSWI&#xff09;​​ 的原理。这是一个用于零低速或极低速范围内估算转子位置的核心技术。核心思想与要解决的问题在电机静止或转速极…

MATLAB基于博弈论组合赋权-云模型的煤与瓦斯突出危险性评价

MATLAB基于博弈论组合赋权-云模型的煤与瓦斯突出危险性评价 1. 问题背景与核心目标 背景&#xff1a;煤与瓦斯突出是煤矿生产中的一种极其复杂的动力灾害&#xff0c;其发生机理复杂&#xff0c;影响因素众多&#xff08;如地应力、瓦斯压力、煤体物理属性等&#xff09;。对其…

JavaWeb-Servlet总结及JSP

目录 一、文件下载 二、ServletConfig对象 三、Web.xml文件使用总结 四、server.xml文件 五、JSP动态网页技术 1.概念&#xff1a; 2.动态网页&#xff1a; 3.特点&#xff1a; 4.JSP的访问原理&#xff1a; 5.JSP的文档说明&#xff1a; 6.jsp实际运行文件&#xff…

DDIM和DDPM之 间的区别与联系

核心关系概述 首先&#xff0c;要理解DDIM并不是一个全新的模型&#xff0c;而是DDPM的一个精巧的重新参数化和扩展。它们使用完全相同的训练目标和方法&#xff0c;因此你可以用一个训练好的DDPM模型直接来运行DDIM的采样算法&#xff0c;而无需重新训练。 DDIM的核心贡献是&a…

c++---map和set

这里再提二叉树&#xff08;二叉搜索树&#xff09;&#xff0c;是为了后面讲解map和set做准备。 一、二叉搜索树 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树。 若它的左子树不为空&#xff0c;则左子树上所有节点的值都…

windows下,podman迁移镜像文件位置

docker-desktop有自带的镜像文件位置迁移功能&#xff0c;但podman-desktop还没有&#xff0c;所以只能自己操作wsl导入导出来实现# 1.一定要先停止当前machine podman machine stop# 2. 导出当前 machine&#xff08;会生成 tar 镜像&#xff09; wsl --export podman-machine…

Champ-基于3D的人物图像到动画视频生成框架

本文转载自&#xff1a;https://www.hello123.com/champ ** 一、&#x1f916; Champ 是什么&#xff1f; 阿里 南大 复旦联手打造的虚拟人动作黑科技&#xff01;Champ 可不是普通动画工具&#xff0c;它能把你随手拍的小视频变成专业级 3D 动画 —— 无论跳舞、打拳还是走…

Thingsboard 3.4 源码运行 Mac Mini

拉取源码 git clone https://github.com/thingsboard/thingsboard.gitjdk11 java -version java version "11.0.27" 2025-04-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.278-LTS-232) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.278-LTS-23…

【AI大模型面试宝典60题】1-5

目录 Q1:仅编码器(BERT 类)、仅解码器(GPT 类)和完整的编码器-解码器架构各有什么优缺点? 1. 编码器架构 (Encoder-only) - 代表:BERT系列 2. 解码器架构 (Decoder-only) - 代表:GPT系列 3. 编码器-解码器架构 (Encoder-Decoder) - 代表:T5、BART 升华与总结 (总…

macOS中找不到钥匙串访问

如果在macOS中找不到钥匙串访问&#xff0c;请操作如下命令&#xff1a; security list-keychains可以看到类似&#xff1a; “/Library/Keychains/System.keychain” 然后执行&#xff1a; open /Library/Keychains/System.keychain然后可以将应用保留在程序坞中保留。

UCOSIII移植——学习笔记1

本文是笔者在学习 正点原子官方 的《【正点原子】手把手教你学UCOS-III实时操作系统》系列视频时整理的笔记。 视频讲解清晰透彻&#xff0c;非常感谢UP主的无私奉献&#xff01;原课程链接如下&#xff1a; &#x1f449; B站视频链接&#xff1a;【正点原子】手把手教你学UCO…

SpringBootCodeGenerator使用JSqlParser解析DDL CREATE SQL 语句

&#x1f9e0; 使用 JSqlParser 解析 CREATE TABLE SQL 语句详解在数据库开发中&#xff0c;我们常常需要从 SQL 中提取表结构信息&#xff0c;比如字段名、类型、注释等。相比使用正则表达式&#xff0c;JSqlParser 提供了更可靠的方式来解析 SQL 语句&#xff0c;尤其适用于复…

css3新增-网格Grid布局

目录flex弹性布局Gird布局开启网格布局定义网格中的行和列长度值百分比值新单位fr关键字函数minmax(min, max)函数-repeatauto-fill vs auto-fit举例说明grid-template-areasgapgrid-auto-columns和grid-auto-rowsjustify-contentalign-contentjustify-contentalign-contentjus…

最新最强新太极工具3.6 支持Windows和不支持mac电脑,支持免改码,和改码,支持12—18系统

温馨提示&#xff1a;文末有资源获取方式最新最强太极工具3.6支持Windows和Mac计算机&#xff0c;支持无代码更改和代码更改&#xff0c;支持12-18个系统 支持A7-A11芯片、Apple 5s x、iPad A7至A11芯片&#xff0c;支持所有者锁定、激活锁定、无法激活&#xff08;密码界面和禁…

深入浅出 C++20:新特性与实践

C20 是 C 编程语言的一次重要更新&#xff0c;引入了许多新特性和改进&#xff0c;旨在提升代码的简洁性、安全性和性能。本文将详细介绍 C20 的一些核心特性&#xff0c;并通过示例代码帮助读者理解这些特性的应用场景。C20 新特性总结 以下是 C20 的主要新特性及其简要描述&a…

CSS 属性概述

CSS 属性概述 CSS 属性用于控制 HTML 元素的样式和行为&#xff0c;包括布局、颜色、字体、动画等。以下是常用的 CSS 属性分类及示例&#xff1a; 布局相关属性 display: 控制元素的显示方式&#xff0c;如 block、inline、flex、grid。position: 定义元素的定位方式&#…

--- 统一请求入口 Gateway ---

spring cloud gateway 官方文档 Spring Cloud Gateway 中文文档 什么是api网关 对于微服务的每个接口&#xff0c;我们都需要校验请求的权限是否足够&#xff0c;而微服务把项目细化除了许多个接口&#xff0c;若这些接口都要对服务进行权限校验的话&#xff0c;那么无疑加重…

返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践

返利app的消息队列架构&#xff1a;基于RabbitMQ的异步通信与解耦实践 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在返利app的业务流程中&#xff0c;用户下单、返利计算…