没看答案,暴力解法时间复杂度O(N^2),排序时间复杂度O(NlogN),所以采用计数排序,时间复杂度O(N)。
class Solution:
def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
bucket = [0] * 101
n = len(nums)
res = [0] * n
for num in nums:
bucket[num] += 1
for i, num in enumerate(nums):
res[i] = sum(bucket[:num])
return res