Likou NO.350 2つのアレイの交差点II(ハッシュテーブル;カウンター)

トピック(トピックへのリンク

ここに画像の説明を挿入
ここに画像の説明を挿入

方法1:ハッシュテーブル

ここではハッシュテーブルとして辞書を使用していますが、通常はリストで十分です

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        haxi_dict = {
    
    x:0 for x in range(1001)} # 利用字典推导式创建哈希表
        result = []
        # 字典键对应的值为该数字的出现次数,遍历nums1并修改出现次数
        for x in nums1:
            haxi_dict[x] += 1
        # 遍历nums2并查询字典,如果该对应值的次数大于0,将这个数append到结果数组里,并且字典相应数字的值-1
        for y in nums2:
            if haxi_dict[y] > 0:
                result.append(y)
                haxi_dict[y] -= 1
        return result

方法2:カウンター(ナレッジポイントリファレンスブログ

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
応用:
ここに画像の説明を挿入

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return [i for i in (Counter(nums1)&Counter(nums2)).elements()]

直接使用できない場合は、最初にインポートする必要があります

import collections

おすすめ

転載: blog.csdn.net/qq_33489955/article/details/124180638