尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
每日算法题2
链接LCR 170. 交易逆序对的总数 - 力扣LeetCode在股票交易中如果前一天的股价高于后一天的股价则可以认为存在一个「交易逆序对」。请设计一个程序输入一段时间内的股票交易记录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思路首先明确一点当把数组分为两部分时左边逆序对右边逆序对一左一右逆序对的数量和等于不分组的数量即我们可以把数组分为两部分算其逆序对因为这种将大化为两个小的部分和归并排序相似我们联想一下算一左一右时为升序左边如果大于右边则左当前位置之后都大于右边这个数。下面由代码和注释详细讲解注意由于习惯我把数组名改为了numsclass Solution {public://搞一个临时数组给归并排序使用int tem[50001];//优化方案这个数组大小可以看下面的sz来搞不需要一开始搞这么多int reversePairs(vectorint nums) {//将其分为两部分整体逆序对等于//左边一块逆序对右边一块逆序对一左一右找到的逆序对int sznums.size();return hanshu(nums,0,sz-1);}int hanshu(vectorint nums,int left,int right){//使用归并排序因为归并排序也是分两部分而且重要的是当左边和右边有序比较他们可以省事.if(leftright) return 0;int ret0;int mid(leftright)1;int lleft;int rmid1;rethanshu(nums,left,mid);rethanshu(nums,mid1,right);//开始排序我这次使用升序降序也可以不过思路小小变一下//注意这里是归并排序的时候同时开始计算retint i0;while(lmidrright){if(nums[l]nums[r]){//因为是找逆序对所以这个里只需变化temret不变tem[i]nums[l];//l是因为它小了r后面它也一定大不过没有逆序对了}else{tem[i]nums[r];retmid-l1;r;}}//将剩余数字加入tem中while(lmid){tem[i]nums[l];}while(rright){tem[i]nums[r];}//把tem的值给回numsfor(int oleft;oright;o){nums[o]tem[o-left];//因为tem从0开始所以o要减left;}return ret;}};
RELATED

相关推荐

如何用电脑键盘操控手机终端:OpenClaw on Android搭配Termux的SSH远程配置完全指南

如何用电脑键盘操控手机终端:OpenClaw on Android搭配Termux的SSH远程配置完全指南

移动开发AI 应用CLI开发工具 【免费下载链接】openclaw-android Run OpenClaw on Android with a single command — no proot, no Linux 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-android 点击查看 免费下载 OpenClaw on Android 让你在手机上运行 …

📅 2026/10/11 10:56:23
JSP上机实习报告全攻略:从环境搭建到JDBC增删改查实战

JSP上机实习报告全攻略:从环境搭建到JDBC增删改查实战

简介:面向JSP开发技术课程实训与复习,这份资料汇编了JSP上机实习的完整任务报告,涵盖JSP页面输出Java计算结果、BookInfo值JavaBean的创建、DoString工具类实现字符串中特殊符号的转换,以及使用JavaBean完成用户名密码校验的简易登…

📅 2026/10/11 10:51:23
@Value 只认容器,new 出来的对象拿不到值

@Value 只认容器,new 出来的对象拿不到值

这个坑是在导数据的时候撞上的。 测试环境的订单表要灌数,一万两千条,走到八千多行,程序没声了。 日志里刨出来这么一行: java.lang.NullPointerExceptionat 往后的帧全是业务包名,我就不抄了。 栈指到的代码长这样&am…

📅 2026/10/11 10:51:23
MORE NEWS

更多资讯

📰

变电站红外图像中的PT/CT检测:889张标注数据与YOLOv8实战

简介:这份数据集面向电力设备巡检与目标检测算法开发者,提供变电站红外场景下的电压电流互感器等设备标注样本,可直接用于训练YOLOv5/YOLOv8、Faster R-CNN等主流检测模型。包内共2000个文件,以VOC格式xml标注、YOLO格式txt标注和…

📰

Oracle截取JSON字符串内容:JSON_VALUE与字符串函数实战

简介:这份PDF资源聚焦Oracle数据库中截取JSON字符串内容的实用方法,面向需要处理JSON数据的数据库开发人员与运维工程师。内容围绕自定义函数parsejsonstr展开,通过完整代码示例讲解如何依据startkey与endkey参数从JSON字符串中提取指定键值对…

📰

ZZU编译原理实验:NFA转DFA并最小化C++实现与避坑指南

简介:这份资源面向高校「编译原理」课程学习者,尤其是ZZU的学弟学妹,提供NFA转DFA并最小化实验的完整代码与实验报告,帮助理解子集构造法、DFA最小化等自动机理论核心算法。压缩包共2个文件,包含1个cpp源码和1个doc实验…

📰

雷神Thunderobot官方授权维修点指南:2026年10月高刷屏与风扇专项送修

雷神Thunderobot官方授权维修点指南:2026年10月高刷屏与风扇专项送修编号:LSSHFW-2026-1007摘要:高刷电竞屏用户搜索「雷神笔记本官方售后授权维修地址电话」时,最怕面板被非官方更换后刷新率失真。本文基于 2026 年 10 月信息&am…

📰

钉钉考勤与审批规则落地:从签到双签逻辑到后台配置避坑指南

简介:这份《2019年度钉钉软件使用的管理规定》文档,面向企业管理者、行政人员及需要规范使用钉钉的团队成员,系统梳理了签到、考勤打卡、请假与审批等核心功能的落地流程,并给出外勤人员、办公室人员与管理员的使用边界&#xff0…

📰

AI及学术网址导航:用JSON配置驱动静态导航页的完整实践

简介:面向AI应用开发者和学术研究者的项目源码包,将腾讯IMA、Kimi.ai、Deepseek、智谱清言、秘塔、豆包、通义千问、Elicit等主流AI工具,与arXiv、谷歌学术镜像、百度学术、专知、Web of Science、HimmPat、Patentics、Global Dossier等学术及…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬