# 计算右侧小于当前元素的个数

给你`一个整数数组 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]

示例 3:

输入:nums = [-1,-1]
输出:[0,0]

 

提示:

## template ```python class Solution: def countSmaller(self, nums: List[int]) -> List[int]: n = len(nums) if n == 0: return [] numsarr = [[nums[i], i] for i in range(n)] res = [0 for _ in range(n)] def merge(left, right): if left == right: pass else: mid = left + (right - left) // 2 merge(left, mid) merge(mid + 1, right) temp = [] i = left j = mid + 1 while i <= mid and j <= right: if numsarr[i][0] <= numsarr[j][0]: temp.append(numsarr[j]) j += 1 else: temp.append(numsarr[i]) res[numsarr[i][1]] += right - j + 1 i += 1 while i <= mid: temp.append(numsarr[i]) i += 1 while j <= right: temp.append(numsarr[j]) j += 1 numsarr[left : right + 1] = temp[:] merge(0, n - 1) return res ``` ## 答案 ```python ``` ## 选项 ### A ```python ``` ### B ```python ``` ### C ```python ```