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.

**Example 2:**

Input:nums = [-1]Output:[0]

**Example 3:**

Input:nums = [-1,-1]Output:[0,0]

**Constraints:**

`1 <= nums.length <= 10`

^{5}`-10`

^{4}<= nums[i] <= 10^{4}

class Solution {
public List<Integer> countSmaller(int[] nums) {
}
}