LeetCode 1365. 有多少小于当前数字的数字缩略图

给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。

换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i  nums[j] < nums[i] 。

以数组形式返回答案。

1365. 有多少小于当前数字的数字 – 力扣(Leetcode)

LeetCode 1365. 有多少小于当前数字的数字插图
OpenCV步步精深-可心科创工作室

思路:先用哈希表统计出个数,再按照要求构建列表。

python3实现:

class Solution:
    def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
        # 哈希表统计,在根据条件返回
        cp_nums = copy.deepcopy(nums)
        cp_nums.sort(reverse=True)
        dic_nums = collections.Counter(cp_nums)
        key_list = list(dic_nums.keys())
        value_list = list(dic_nums.values())
        result = []

        for elem in nums:
            idx = key_list.index(elem)
            add_value = sum(value_list[idx+1:])
            result.append(add_value)

        return result
LeetCode 1365. 有多少小于当前数字的数字插图1
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注