本文主要是介绍Leetcode--Java--315. 计算右侧小于当前元素的个数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。
样例描述
示例 1:输入:nums = [5,2,6,1]
输出:[2,1,1,0]
解释:
5 的右侧有 2 个更小的元素 (2 和 1)
2 的右侧仅有 1 个更小的元素 (1)
6 的右侧有 1 个更小的元素 (1)
1 的右侧有 0 个更小的元素
示例 2:输入:nums = [-1]
输出:[0]
思路
树状数组 (动态维护前缀和数组)
树状数组主要两个功能:①给某个位置加一个数 ②求1~x的前缀和
修改和查询的代价都是O(logn)
- 将数组的值作为至于,对应value记录这个数出现的次数。
- 从后往前遍历(因为是找右边,所以从右边开始),比某个数x小的数的个数就相当于x - 1的前缀和(value统计的都
这篇关于Leetcode--Java--315. 计算右侧小于当前元素的个数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!