应用插入排序的思想求解,不过这里在寻找需要插入位置时,运用了二分查找的方法
class Solution:
def countSmaller(self, nums: List[int]) -> List[int]:
tmp = []
result = [0]*len(nums)
for i in range(len(nums)-1, -1, -1):
start = 0
end = len(tmp)
while start < end:
mid = start + ((end-start)>>1)
if tmp[mid] >= nums[i]:
end = mid
else:
start = mid+1
result[i] = end
tmp.insert(end, nums[i])
return result
网友评论