## Description

https://leetcode.com/problems/count-of-smaller-numbers-after-self/

You are given an integer array *nums* and you have to return a new *counts* array. The *counts* array has the property where `counts[i]`

is the number of smaller elements to the right of `nums[i]`

.

**Example 1:**

Input:nums = [5,2,6,1]Output:[2,1,1,0]Explanation:To the right of 5 there are2smaller elements (2 and 1). To the right of 2 there is only1smaller element (1). To the right of 6 there is1smaller element (1). To the right of 1 there is0smaller element.

**Constraints:**

`0 <= nums.length <= 10^5`

`-10^4 <= nums[i] <= 10^4`

## Explanation

## Python Solution

```
class Solution:
def countSmaller(self, nums):
result = []
sorted_nums = []
for num in reversed(nums):
index = bisect.bisect_left(sorted_nums, num)
result.insert(0, index)
sorted_nums.insert(index, num)
return result
```

- Time Complexity: ~Nlog(N)
- Space Complexity: ~N.