/** * @param {number[]} nums * @return {number[]} */ const smallerNumbersThanCurrent = (nums) => { let bucket = Array(Math.max(...nums) + 1).fill(0); for (let i = 0; i < nums.length; i++) { bucket[nums[i]]++; } for (let i = 1; i < bucket.length; i++) { bucket[i] += bucket[i - 1]; } let countList = []; for (let i = 0; i < nums.length; i++) { countList[i] = bucket[nums[i] - 1] || 0; } return countList; };