【牛客刷题】BM20 数组中的逆序对

简介: 【牛客刷题】BM20 数组中的逆序对

正文


题目


09.png


题解


归并排序得结果


问题转化:求逆序对就是统计有多少个前大后小的数对,问题和归并两个有序数组求前大后小数对一样。所以现在的问题变为统计子问题中逆序对的个数。


递归模型变形:递归按照标准的归并排序来,注意的是统计个数,当出现nums[i]>nums[j]时,统计所有前半段区间内比nums[j]大的数及为ans+=m-i+1;(为了理解方便lm前半段,m+1r后半段)


边界注意:

  • i == r+1当前半段已经统计完,剩下后半段归并,证明j后的数都是比nums[m]大的,无需统计
  • j == l+1当后半段统计完,剩下前半段归并,i后的数都比num[l]大,但在之前已经统计个数,无需统计 alt

009.png

public class Solution {
    int[] nums,temp;
    public int merge_sort(int l,int r){
        if(l>=r)return 0;
        int m, i, j, k;
        long res;
        m = (l+r)/2;
        res = (merge_sort(l,m)+merge_sort(m+1,r))%1000000007;
        //merge
        for(k=l;k<=r;k++)temp[k]=nums[k];
        i = l;j = m+1;k = l;
        for(k=l;k<=r;k++){
            if(i==m+1)nums[k]=temp[j++];
            else if(j==r+1||temp[i]<=temp[j])nums[k] = temp[i++];
            else {
                res=(res + m-i+1)%1000000007;
                nums[k]=temp[j++];
            }
        }
        return (int)res;
    }
    public int InversePairs(int [] array) {
        nums = array;
        temp = new int[array.length];
        return merge_sort(0,array.length-1);
    }
}
相关文章
|
机器学习/深度学习 人工智能 网络架构
YOLOv5架构详解
YOLOV5神经网络架构详解
3713 0
|
存储 JSON NoSQL
ETCD教程-4.深入ETCD
目前etcd主要经历了3个大的版本,分别为etcd 0.4版本、etcd 2.0版本和etcd 3.0版本。
1459 0
ETCD教程-4.深入ETCD
|
11月前
|
人工智能 监控 安全
借助API,淘宝京东拼多多卖家轻松应对市场变化
在电商竞争中,淘宝、京东、拼多多卖家常面临库存、定价、订单等难题。借助API技术,可实现库存同步、动态调价、智能订单处理、数据预测与客服整合,提升效率300%。API正成为电商智能化运营的核心引擎,助力商家精准决策、高效增长。(238字)
|
4月前
|
存储 监控 Java
【Java并发编程】线程池:核心7大参数、执行原理、execute() vs submit()、拒绝策略、参数设计、动态线程池、线程池隔离(附《思维导图》+《面试高频考点清单》)
本文系统梳理Java线程池全体系知识:涵盖7大核心参数原理、任务执行四步流程、execute与submit本质区别、4种拒绝策略适用场景、CPU/IO密集型线程数计算方法,并强调禁用Executors、必用有界队列、自定义线程工厂等生产级最佳实践,助力高效并发编程与面试通关。
|
9月前
|
存储 SQL 供应链
什么是PDF_417编码?
PDF417是一种高容量二维条码,支持文本、数字、字节等多种数据类型,具备强纠错能力与良好兼容性,广泛应用于政务、交通、医疗、物流等领域。通过HCreateLabelView软件可轻松生成与打印,适用于航空票务等场景,实现信息离线存储与高效识别。
617 3
|
11月前
|
SQL
|
10月前
|
JavaScript 前端开发 小程序
Vue为何能稳居前端框架主流宝座
自2014年发布以来,Vue凭借“低门槛、渐进式、生态完善、持续进化”四大优势,迅速跻身前端主流框架。其简洁的模板语法降低学习成本,灵活架构适配各类项目,官方生态与活跃社区提升开发效率,Vue3性能升级与跨平台能力更支撑大厂核心业务,成为中小企业与头部企业共同选择,地位日益稳固。
540 0
|
存储 人工智能 分布式计算
云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
阿里云 OpenLake 解决方案重磅发布,构建大数据、搜索、AI 一体化的能力体系,实现多模态数据统一纳管、多种计算引擎平权计算、大数据 AI 一体化开发,助力企业基于数据资产构筑竞争力。
2038 10
云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
|
编解码 自然语言处理 语音技术
神经codec模型相关论文
本文汇总了近年来在神经音频编解码器和语音语言模型领域的多项重要研究,涵盖从2020年到2024年的最新进展。这些研究包括端到端的音频编解码器、高效音频生成、高保真音频压缩、多模态表示学习等。每项研究都提供了详细的论文链接、代码和演示页面,方便读者深入了解和实验。例如,SoundStream(2021)提出了一种端到端的神经音频编解码器,而AudioLM(2022)则通过语言建模方法生成音频。此外,还有多个项目如InstructTTS、AudioDec、HiFi-Codec等,分别在表达性TTS、开源高保真音频编解码器和高保真音频压缩方面取得了显著成果。
1216 13
|
小程序 数据可视化 前端开发
编写小程序用什么软件
编写小程序用什么软件
1607 5

热门文章

最新文章