LeetCode—剑指 Offer 51. 数组中的逆序对

剑指 Offer 51. 数组中的逆序对

题目描述:
[51]
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。

考察重点
第51题归并排序实现。在排序过程中,比较左右两数组元素大小时,计算逆序对个数。

第51题

class Solution {int count = 0;public int reversePairs(int[] nums) {mergeSort(nums, 0, nums.length - 1);return count;}public void mergeSort(int[] nums, int left, int right){if(left >= right)   return;int mid = left + (right - left) / 2;mergeSort(nums, left, mid);mergeSort(nums, mid + 1, right);merge(nums, left, mid, right);}public void merge(int[] nums, int left, int mid, int right){int[] numsTemp = new int[right - left + 1];int pointTemp = 0, pointR = mid + 1, pointL = left;while(pointL <= mid || pointR <= right){if(pointR > right || pointL > mid){while(pointL <= mid){numsTemp[pointTemp++] = nums[pointL ++];}while(pointR <= right){numsTemp[pointTemp++] = nums[pointR ++];}break;}if(nums[pointL] > nums[pointR]){count += (mid - pointL + 1);numsTemp[pointTemp ++] = nums[pointR++];}else{numsTemp[pointTemp ++] = nums[pointL++];}}for(int i = left;i <= right;i ++){nums[i] = numsTemp[i - left];}}
}

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

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

相关文章

Callable与Future的介绍

Callable与Future的介绍Callable与 Future 两功能是Java在后续版本中为了适应多并法才加入的&#xff0c;Callable是类似于Runnable的接口&#xff0c;实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务。 Callable的接口定义如下&#xff1b; public interfa…

使用Null Object设计模式[转]

在ESFramework的设计实现中&#xff0c;很多地方都用到了Null Object设计模式。Null Object模式的含义在于&#xff0c;提供一个对象给指定的类型&#xff0c;用以代替这个对象为空的情况。 Null Object提供了“什么也不做”的行为,隐藏来自它的合作者的细节。对于如何理解和应…

angular input使用输入框filter格式化日期

最近使用angular日期选取器。只需要把所选的输出迄今input输入框&#xff0c;根据默认的假设&#xff0c;显示是在时间的形式的时间戳。不符合规定。需要格成一个特定的公式格公式。但input上ng-model不能直接对用于filter。因此内容需要一种方法来在这里显示格式化。 网上寻找…

CH0805 防线 (二分值域,前缀和,特殊性质)

$ CH~0805~ $ 防线 (二分值域&#xff0c;前缀和&#xff0c;特殊性质) $ solution: $ 注意博主所给题面的输出和原题有些不同 这道题当时想了很久很久&#xff0c;就是想不到怎么写。果然还是太 $ vegetable $ 了。首先我们可以肯定的是&#xff0c;我们不能暴力枚举&#xff…

LeetCode—美团2021秋招 001、002、003、004

美团2021秋招 001 小美的用户名、002 小美的仓库整理、003 小美的跑腿代购、004 小团的复制粘贴 题目描述&#xff1a; [001] 小美是美团的前端工程师&#xff0c;为了防止系统被恶意攻击&#xff0c;小美必须要在用户输入用户名之前做一个合法性检查&#xff0c;一个合法的用…

使用URI设计松散耦合的Metro应用程序

Metro风格应用程序意味着小型且高度集中。对于我们传统上为企业建立的、大规模的、单一的应用程序而言&#xff0c;我们可把它们重新想象成工作流的特定工 具。例如&#xff0c;你可能使用某款股票交易应用程序中的工具来查找并查看客户基本信息&#xff0c;而使用另一款应用程…

开源.NET企业级应用系统 OpenVista

看到倡议研究mono&#xff0c;我一直也在关注、跟踪Mono的发展&#xff0c;就是在项目中没有使用过。以前我介绍过一个iFolder Novell开源文件服务器.下面就来介绍一个Mono的一个应用OpenVista。http://www.cnblogs.com/shanyou/category/43483.html这里有许多Mono的相关资料。…

多个装饰器装饰一个函数

# def debug(func): # # def wrapper(): # # print ("[DEBUG]: enter {}()".format(func.__name__)) # # return func() # # return wrapper # # debug # # def say_hello(): # # print("hello!") # say_hello() # 添加功能并…

WKInterfaceImage 无法更新图片的问题

最近涉及到AppleWatch的相关项目&#xff0c;但有个奇怪问题无法解决&#xff0c;而且无法理解&#xff1a; 根据不同的用户操作&#xff0c;需要修改播放器的专辑图片。 不知道跟我的项目需求是不是有关系&#xff1a;我需要轮询共享空间&#xff0c;以拿取同步数据&#xff0…

LeetCode—美团2021秋招 006、007、008、009

美团2021秋招 006 小团的神秘暗号、007 小团的选调计划、008 小团无路可逃、009 小团的装饰物 题目描述&#xff1a; [006] 小团深谙保密工作的重要性&#xff0c;因此在某些明文的传输中会使用一种加密策略&#xff0c;小团如果需要传输一个字符串 S &#xff0c;则他会为这个…

POJ1390 Blocks——动态规划——pku1390

经典的动态规划&#xff0c;LRJ神牛的书上经典例题第一题。 开一个三维数组,f[i][j][k]表示将i~j这一段&#xff0c;连上后面的k个格子全部消去所能够获得的最大价值。 状态转移方程&#xff1a; f[i][j][k]Max{ Max{f[i][p][len[j]k]f[p1][j-1][0]}(color[p]color[j] and i<…

最大子矩阵求法详解

最大子矩阵&#xff08; $ s^2 $ 枚举障碍与 $ n \times m $ 悬线法&#xff09; 题目大意&#xff1a; 有 $ s $ 个障碍分布在一个 $ n\times m $ 的矩阵中。现在让你找出其中不包含任何一个障碍的最大子矩阵。 首先我们要引进一个新概念&#xff1a;&#xff08;极大子矩阵&a…

SQLSERVER数据仓库的构建与分析

实例构建过程与分析 1&#xff0e;现在以一个比较简单的实例来分析和探讨MS SQL SERVER 数据仓库的构建过程。实际上数据仓的构建是相当复杂的&#xff0c;他结合了数据仓库的前端技术和很强的业务要求。在这儿只是以一个简单的实例来说明他大致的构建流程。 2&#xff0e;构建…

基于Layui实现的树形菜单页面

基于Layui实现的树形菜单页面具体方法实现方法一&#xff1a;针对Layui模板的前后端统一更新1. 删除2. 添加3. 后端方法二&#xff1a;基于Dtree实现的纯前端树形增删改文中的组件地址具体方法实现 实现树形菜单&#xff0c;本文将给出两种实现方式。 针对Layui前端模板EasyW…

POJ 1723 Soldiers (中位数)

$ POJ~1723~Soldiers $ (中位数) $ solution: $ 这道题说难也不算太难&#xff0c;但是当时自己想的很矛盾。所以还是列一篇题解。 这道题首先比较容易看出来的就是&#xff1a;行和列是两个分开的问题&#xff0c;而且行的移动就是一个仓库选址的板子&#xff0c;直接求中位数…

php中时间轴开发,即显示为“刚刚”、“5分钟前”、“昨天10:23”等

php中时间轴开发&#xff0c;即显示为“刚刚”、“5分钟前”、“昨天10:23”等 其实这个没什么技术含量&#xff0c;当然就直接贴代码&#xff0c;不废话了&#xff08;合肥旅游网&#xff09;&#xff0c; 但是在其实开发中还是蛮有用的&#xff0c;譬如论坛帖子&#xff0c;围…

(一)Windows环境下汇编编程读书笔记

看了一节关于80x86系列处理器简史&#xff0c;不知道云里和雾里&#xff0c;什么晶体管啊&#xff0c;什么什么之类的不知道云里和雾里&#xff0c;看了讲什么都不知道啊&#xff01; 转载于:https://www.cnblogs.com/Nuxgod/articles/692990.html

我的读书清单(持续更新)

我的读书清单&#xff08;持续更新&#xff09; 2017-05-31 《一千零一夜》2006&#xff08;四五年级&#xff09;《中华上下五千年》2008&#xff08;初一&#xff09;《鲁滨孙漂流记》2008&#xff08;初二&#xff09;《钢铁是怎样炼成的》2009&#xff08;初二&#xff09;…

Docker知识点总结及其命令的使用

DockerDocker简介Docker与Tomcat有什么区别&#xff1f;Docker与虚拟机有什么区别&#xff1f;Docker的基本组成Docker的联合文件系统Docker基本命令Docker中的几个重要组件一、容器数据卷二、Dockerfile三、Docker网络虚拟机共享网络的三种方式Docker共享网络的四种方式Docker…

主题:Spring注解入门(转载)

原文链接&#xff1a;http://www.iteye.com/topic/295348 1. 使用Spring注解来注入属性 1.1. 使用注解以前我们是怎样注入属性的 类的实现&#xff1a; Java代码 public class UserManagerImpl implements UserManager { private UserDao userDao; public void …