Hard | LeetCode 315. 计算右侧小于当前元素的个数 | 归并排序
2021-06-04 15:02
标签:off 数组中的逆序对 示例 位置 number for 提示 一个 targe 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: 示例: 提示: 此题要求, 某个数右边比当前元素小的元素的个数, 也就是找逆序对。不过逆序对还需要在第一个元素的位置进行计数。找逆序对与 Hard | 剑指 Offer 51. 数组中的逆序对 | 归并排序 类似, 要针对每个下标进行计数, 使用一个索引数组即可。 索引数组:新建一个数组保存源数组中所有元素的下标。针对源数组中所有元素的位置变动, 源数组不做任何改动, 只变动索引数组。在需要进行大小比较时, 以索引数组的的某个值, 作为源数组的下标, 可以获得真正的值。 然后题目是要求某个数里, 从右边找比当前元素小的个数。 在 Hard | 剑指 Offer 51. 数组中的逆序对 | 归并排序 我们知道, 在找两个有序数组的逆序对时(假设为[[A],[B]]), 从左往右归并, 若ra > rb, 则说明形成了逆序对, 则ra后边的元素全部比rb 大。也就是可以得到数组里某个数组, 左边比当前元素大的部分。而要一次找出右边比当前元素小的部分, 则从左往右归并是无法一次找出的。 解决办法是:从右往左归并, 通过这种归并顺序, 就可以一次找出右边比当前元素小的个数。 Hard | LeetCode 315. 计算右侧小于当前元素的个数 | 归并排序 标签:off 数组中的逆序对 示例 位置 number for 提示 一个 targe 原文地址:https://www.cnblogs.com/chenrj97/p/14654214.html315. 计算右侧小于当前元素的个数
counts[i]
的值是 nums[i]
右侧小于 nums[i]
的元素的数量。输入:nums = [5,2,6,1]
输出:[2,1,1,0]
解释:
5 的右侧有 2 个更小的元素 (2 和 1)
2 的右侧仅有 1 个更小的元素 (1)
6 的右侧有 1 个更小的元素 (1)
1 的右侧有 0 个更小的元素
0
-10^4
解题思路
方法一: 归并排序
public List
上一篇:JavaScript深入理解-Promise以及常用方法详解
下一篇:【论文阅读】Stanza: A Python Natural Language Processing Toolkit for Many Human Languages[ACL2020]
文章标题:Hard | LeetCode 315. 计算右侧小于当前元素的个数 | 归并排序
文章链接:http://soscw.com/index.php/essay/90440.html