134. 重要逆序对

leetcode 493 分治

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个整数数组 a,如果数组中前面的一个数字比后面某个数字的 2 倍还要大,那么这两个数字构成一个重要逆序对。也就是说,对于下标 i 和 j,如果 i < j 且 a(i) > 2*a(j) ,则 a(i) 和 a(j) 构成一个重要逆序对。你要计算出数组里重要逆序对的数量。

比如说,给你的数组 a 是:

8, 2, 4, 1

这个数组中有 3 个重要逆序对。分别是:

(8, 2),
(8, 1),
(4, 1),

于是你要返回 3。

如果给你的数组是:

1, 2, 4, 8

这个数组是递增的,前面数字比后面某个数字的 2 倍要大这种情况是不可能存在的,因此重要逆序对的数量为 0。

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。