当前位置:首页|资讯

Leetcode 493. 翻转对

作者:__Geek007__发布时间:2024-09-27

1.题目基本信息

1.1.题目描述

给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。

你需要返回给定数组中的重要翻转对的数量。

1.2.题目地址

https://leetcode.cn/problems/reverse-pairs/description

2.解题方法

2.1.解题思路

使用左闭右开的归并排序/使用线段树(暂未实现)

2.2.解题步骤

第一步,使用归并排序的模板对数组进行排序,注意,这里的排序要使用一个和原数组长度相同的sortedNums进行存储排序的内容,否则很容易超时(在这卡了很久)

第二步,在递归操作和合并排序子数组之间,遍历左子数组和右子数组,计算两个已经排序的子数组的重要翻转对数量,并加到最终结果中result

第三步,排序后,返回result即可

3.解题代码

Python代码




4.执行结果

归并排序的时间复杂度是O(nlogn),但是可能比树状数组的性能要差一丢丢



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1