当前位置:   article > 正文

《python算法与数据结构2000讲》0315. 计算右侧小于当前元素的个数

《python算法与数据结构2000讲》0315. 计算右侧小于当前元素的个数

python算法与数据结构2000讲》0315. 计算右侧小于当前元素的个数

  • 标签:树状数组、线段树、数组、二分查找、分治、有序集合、归并排序
  • 难度:困难

题目大意

给定一个整数数组 nums

要求:返回一个新数组 counts 。其中 counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。

解题思路

可以用树状数组解决。

首先对数组进行离散化处理。把原始数组中的数据映射到 [0, len(nums) - 1] 这个区间。

  • 然后逆序顺序从数组 nums 中遍历元素 nums[i]。计算其离散化后的排名 index,查询比 index 小的数有多少个。将其记录到答案数组的对应位置 ans[i] 上。
  • 然后在树状数组下标为 index 的位置上,更新值为 1

重复上述步骤直到遍历完所有元素。最后输出答案数组即可。

代码


                
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/227612
推荐阅读
相关标签
  

闽ICP备14008679号