当前位置: 首页 > news >正文

[LeetCode] LCR170. 交易逆序对的总数

题目描述:

在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录 record,返回其中存在的「交易逆序对」总数。

示例 1:

输入:record = [9, 7, 5, 4, 6]
输出:8
解释:交易中的逆序对为 (9, 7), (9, 5), (9, 4), (9, 6), (7, 5), (7, 4), (7, 6), (5, 4)。

限制:

0 <= record.length <= 50000

题目链接:

. - 力扣(LeetCode)

题目主要思路:

其实就是归并分治的思想,以排升序为例,假如当cur1 > cur2 时,因为左右分区是排升序的,因此cur1以及cur1后面的部分一定是比cur2大的,因此{[cur1,mid], cur2}是一定构成逆序对的。

解题代码:

class Solution {int tmp[50000];
public:int reversePairs(vector<int>& record) {return mergeSort(record, 0, record.size()-1);}int mergeSort(vector<int>& record, int left, int right){// 递归结束条件if (left >= right) return 0;int mid = (left + right) >> 1;int ret = 0;ret += mergeSort(record, left, mid);ret += mergeSort(record, mid+1, right);int cur1 = left, cur2 = mid+1, i = 0;while (cur1 <= mid && cur2 <= right) {// 升序if (record[cur1] <= record[cur2]){tmp[i++] = record[cur1++];}else{ret += mid - cur1 + 1;tmp[i++] = record[cur2++];}}// 处理为排序的数据while (cur1 <= mid) {tmp[i++] = record[cur1++];}while (cur2 <= right) {tmp[i++] = record[cur2++];}// 将数据写入record中for (int i = left; i <= right; ++i){record[i] = tmp[i-left];}// 返回ret结果给上一层return ret;}
};

相关文章:

[LeetCode] LCR170. 交易逆序对的总数

题目描述&#xff1a; 在股票交易中&#xff0c;如果前一天的股价高于后一天的股价&#xff0c;则可以认为存在一个「交易逆序对」。请设计一个程序&#xff0c;输入一段时间内的股票交易记录 record&#xff0c;返回其中存在的「交易逆序对」总数。 示例 1: 输入&#xff1a…...

大开眼界,原来指针还能这么玩?

文章目录 第一阶段&#xff1a;基础理解目标&#xff1a;内容&#xff1a;题目&#xff1a;答案解析&#xff1a; 第二阶段&#xff1a;指针与数组目标&#xff1a;内容&#xff1a;题目&#xff1a;答案解析&#xff1a; 第三阶段&#xff1a;指针与字符串目标&#xff1a;内容…...

揭秘选择知识产权管理系统的常见误区,避免踩坑

在当今知识经济时代&#xff0c;知识产权管理对于企业的发展至关重要。为了提高管理效率和效果&#xff0c;许多企业纷纷选择采用知识产权管理系统。然而&#xff0c;在选择过程中&#xff0c;存在着一些容易陷入的误区。 误区一&#xff1a;只关注功能&#xff0c;忽视用户体验…...

计算机组成原理之存储器的分类

1、按存储介质分类&#xff1a; 半导体存储器&#xff1a;使用半导体器件作为存储元件&#xff0c;如TTL和MOS存储器。这类存储器体积小、功耗低、存取时间短&#xff0c;但断电后数据会丢失。 磁表面存储器&#xff1a;使用磁性材料涂覆在金属或塑料基体表面作为存储介质&…...

Linux(不同版本系统包含Ubuntu)下安装mongodb详细教程

一、下载MongoDB 在MongoDB官网下载对应的MongoDB版本&#xff0c;可以点击以下链接快速跳转到下载页面&#xff1a; mongodb官网下载地址 注意选择和自己操作系统一致的platform,可以先查看自己的操作系统 查看操作系统详情 命令&#xff1a; uname -a 如图&#xff1a;操…...

如何扫描HTTP代理:步骤与注意事项

HTTP代理是一个复杂的过程&#xff0c;通常用于寻找可用的代理服务器&#xff0c;以便在网络中实现匿名或加速访问。虽然这个过程可以帮助用户找到适合的代理&#xff0c;但也需要注意合法性和道德问题。本文将介绍如何扫描HTTP代理&#xff0c;并提供一些建议和注意事项。 什…...

【分布式微服务云原生】gRPC与Dubbo:分布式服务通信框架的双雄对决

目录 引言gRPC&#xff1a;Google的高性能RPC框架gRPC通信流程图 Dubbo&#xff1a;阿里巴巴的微服务治理框架Dubbo服务治理流程图 表格&#xff1a;gRPC与Dubbo的比较结论呼吁行动Excel表格&#xff1a;gRPC与Dubbo特性总结 摘要 在构建分布式系统时&#xff0c;选择合适的服务…...

Python | Leetcode Python题解之第450题删除二叉搜索树中的节点

题目&#xff1a; 题解&#xff1a; class Solution:def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:cur, curParent root, Nonewhile cur and cur.val ! key:curParent curcur cur.left if cur.val > key else cur.rightif cur i…...

[Linux]从零开始的网站搭建教程

一、谁适合本次教程 学习Linux已经有一阵子了&#xff0c;相信大家对LInux都有一定的认识。本次教程会教大家如何在Linux中搭建一个自己的网站并且实现内网访问。这里我们会演示在Windows中和在Linux中如何搭建自己的网站。当然&#xff0c;如果你没有Linux的基础&#xff0c;这…...

牛客——xay loves or与 __builtin_popcount的使用

xay loves or 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行思路 题目要求我们计算有多少个正整数 yy 满足条件 x \text{ OR } y sx OR ys。这里的“OR”是指按位或运算。为了理解这个问题&#xff0c;我们需要考虑按位或运算的性质。 对于任意两个位 a_iai​ 和 b_…...

Docker学习和部署ry项目

文章目录 停止Docker重启设置开机自启执行docker ps命令&#xff0c;如果不报错&#xff0c;说明安装启动成功2.然后查看数据卷结果3.查看数据卷详情结果4.查看/var/lib/docker/volumes/html/_data目录可以看到与nginx的html目录内容一样&#xff0c;结果如下&#xff1a;5.进入…...

Linux中设置cd命令后直接显示当前目录下的所有文件

Linux中cd命令后默认是不显示该目录下的文件的&#xff0c;略微不方便。换个环境经常遇到需要重新设置的情况&#xff0c;网上已有很多发帖了&#xff0c;这里主要汇总下比较简单且常见的bash与csh下的设置方法。 实现的本质就是将"cd" 与 "ls"组合起来&am…...

【RTCP】报文学习笔记

在学习中,发现每一篇都只能窥探其中一部分内容。因此学习了多个大神的文章,记录如下: 参考希望_睿智 大神的文章:从零开始精通RTSP之深入理解RTCP协议, 大神对于细节表述非常到位。 read_book/RTP_RTCP /RTP_RTCP协议内容–精选自译.md 大神提供了更多更为详细的信息。 ZL…...

Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)

本合约非常适合新手学习&#xff0c;其包含了基本的增删改查功能以及各个方式的不同之处的总结&#xff0c;本套合约我也编写了truffle测试&#xff0c;学习truffle测试的小伙伴也有福了~ 该合约的主要作用是通过区块链技术实现物流追踪系统的透明化、自动化与防篡改特性&#…...

对android binder的一些疑问及解答

1上层做了那么多封装是否是过度了&#xff0c;难度增加就在于上层的一层层的封装。 最底层直接ioctl和binder驱动交互&#xff08;单纯c语言实现binder交互&#xff09; 第一层&#xff1a;IPCThreadState.transatct封装了对驱动的请求和接受 第二层封装用IBinder.h里面…...

主流麦克风阵列有哪些?

麦克风阵列在HiFi音频方案中是非常重要的一种方案。它的重要性主要体现在音质提升、环境适应性、噪声处理和空间感创造等方面。以下是它的核心作用&#xff1a; 1. 高精度的声音捕捉 在HiFi音频解决方案中&#xff0c;清晰而高保真的声音捕捉是至关重要的。麦克风阵列可以通过…...

几个快速压缩图片大小的方法!

几个快速压缩图片大小的方法&#xff01;在当今这个视觉主导的时代&#xff0c;图片已成为我们日常生活中不可或缺的一部分&#xff0c;它们承载着从壮丽风景到办公文档的各类信息&#xff0c;每个人的电子设备中&#xff0c;往往都保存着海量的图片文件&#xff0c;然而&#…...

怎么避免在pod产生-派生炸弹(Fork Bomb)? k8s(kubernetes)

通过修改kubelet的配置&#xff0c;限制每个pod能用的pid数量即可解决此问题。 kubelet 可以通过设置PodPidsLimit参数来限制每个容器内的进程数量。 1.【kubelet节点】 /var/lib/kubelet/config.yaml文件中添加如下的内容 # 500仅仅是举例 podPidsLimit: 5002.【kubelet节点…...

MySQL中的嵌套查询

1. 嵌套查询的定义 嵌套查询指在一个查询语句的某个部分嵌入一个子查询。 嵌套查询的执行过程遵循“先子查询、后外层查询”的逻辑。首先&#xff0c;子查询执行并返回一个结果集&#xff0c;可能是一个值、一行或多行数据。接着&#xff0c;外层查询使用子查询的结果继续对数…...

win10 提示pl2303hxa已停产,请联系供货商解决方案

1. 下载驱动 需要下载老版的驱动&#xff0c;下载地址&#xff1a;https://www.pcsoft.com.cn/soft/211569.html 选择普通下载 或者从CSDN下载&#xff1a; 2. 安装驱动 下载完成后安装下载好的驱动文件&#xff0c;安装后更新pl2303的驱动&#xff0c;如下&#xff1a;…...

一键部署Chat2DB:Docker与cpolar打造跨地域数据库管理神器

1. 为什么你需要Chat2DB和Docker的黄金组合 最近两年有个特别明显的趋势&#xff1a;数据正在从专业领域走向全民化。我见过太多产品经理被SQL卡住脖子&#xff0c;市场团队等一份报表要排期三天&#xff0c;甚至财务同事为了跑个月度数据要专门请IT部门吃饭。直到去年第一次用…...

实战演练:三种常见办公文档加密破解技巧(ZIP密码/ZIP伪加密/DOC密码)

1. ZIP密码破解实战&#xff1a;从入门到精通 工作中经常会遇到这种情况&#xff1a;同事发来的压缩包设置了密码&#xff0c;但对方忘记告诉你密码是什么&#xff1b;或者多年前自己加密的压缩包&#xff0c;现在怎么也打不开了。这时候就需要掌握一些ZIP密码破解的技巧。 我遇…...

如何通过5个关键步骤实现Altair GraphQL Client与GitHub的高效团队协作开发

如何通过5个关键步骤实现Altair GraphQL Client与GitHub的高效团队协作开发 【免费下载链接】altair ✨⚡️ A feature-rich GraphQL Client for all platforms. 项目地址: https://gitcode.com/gh_mirrors/alta/altair Altair GraphQL Client是一款功能丰富的跨平台Gra…...

5分钟搞定Windows风扇智能控制:告别噪音烦恼,打造极致静音电脑系统

5分钟搞定Windows风扇智能控制&#xff1a;告别噪音烦恼&#xff0c;打造极致静音电脑系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode…...

Ostrakon-VL终端惊艳效果:终端界面响应速度实测对比

Ostrakon-VL终端惊艳效果&#xff1a;终端界面响应速度实测对比 1. 像素特工终端效果展示 1.1 视觉设计亮点 Ostrakon-VL终端采用了独特的8-bit像素艺术风格&#xff0c;将传统零售场景中的图像识别任务转化为充满游戏感的"数据扫描任务"。这种设计不仅提升了用户…...

Claude Code平替方案实战:如何用第三方API(如DeepSeek、Kimi)低成本玩转AI编程助手

Claude Code平替方案实战&#xff1a;如何用第三方API低成本玩转AI编程助手 在AI编程助手领域&#xff0c;Claude Code凭借其出色的代码理解和生成能力赢得了不少开发者的青睐。然而&#xff0c;官方API的高昂成本和访问限制让许多预算有限的个人开发者和小团队望而却步。本文将…...

高效漫画收藏解决方案:打造你的离线数字漫画库

高效漫画收藏解决方案&#xff1a;打造你的离线数字漫画库 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器&#xff0c;带图形界面 带收藏夹&#xff0c;已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mirrors…...

AI Infra 架构全景介绍

AI Infra 架构全景 一、什么是 AI Infra AI Infra&#xff08;AI 基础设施&#xff09;是支撑大模型从开发到落地全过程的软件栈。它解决的核心问题是&#xff1a;如何让模型在有限的硬件资源上跑得更快、更大、更稳。 从抽象的视角看&#xff0c;整个 AI Infra 可以划分为三个…...

中文医学知识图谱构建指南:从技术痛点到价值落地

中文医学知识图谱构建指南&#xff1a;从技术痛点到价值落地 【免费下载链接】CMeKG_tools 项目地址: https://gitcode.com/gh_mirrors/cm/CMeKG_tools 破解医学文本处理的三重困境 当前医学NLP领域面临着专业术语识别难、实体边界模糊、关系抽取准确率低的三重挑战。…...

【05-log-+-diff:看懂你改了什么、历史是什么】

第五篇&#xff1a;log diff&#xff1a;看懂你改了什么、历史是什么会提交只是第一步&#xff0c;会"读"历史才是真的用上了 Git。这篇教你把 log 和 diff 玩出花来。git log&#xff1a;查看提交历史 git log默认输出太详细&#xff0c;通常用这些参数来精简&…...