亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

LeetCode—Python—349. 兩個數組的交集 + 350. 兩個

系統 1925 0

349. 兩個數組的交集

1.1題目描述

https://leetcode-cn.com/problems/intersection-of-two-arrays

給定兩個數組,編寫一個函數來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]
示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [9,4]

說明:

  • 輸出結果中的每個元素一定是唯一的。
  • 我們可以不考慮輸出結果的順序。

1.2代碼詳解

使用set集合

            
              class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        set1 = set(nums1)
        set2 = set(nums2)
        
        if len(set1) < len(set2):
            return self.set_insert(set1,set2)
        else:
            return self.set_insert(set2,set1)
    
    def set_insert(self, set1, set2):
        return [x for x in set1 if x in set2]
            
          

?

350. 兩個數組的交集 II

2.1題目描述

https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/

給定兩個數組,編寫一個函數來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2,2]


示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [4,9]


說明:

輸出結果中每個元素出現的次數,應與元素在兩個數組中出現的次數一致。
我們可以不考慮輸出結果的順序。

進階:

  • 如果給定的數組已經排好序呢?你將如何優化你的算法?
  • 如果?nums1?的大小比?nums2?小很多,哪種方法更優?
  • 如果?nums2?的元素存儲在磁盤上,磁盤內存是有限的,并且你不能一次加載所有的元素到內存中,你該怎么辦?

2.2代碼詳解

            
              class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        counts = {} # key:元素 ,value:出現頻次
        res = []

        for num in nums1:
            counts[num] = counts.get(num, 0) + 1 # 記錄nums1 中每個數出現的頻次
        # 遍歷nums2
        for num in nums2:
            # counts[num] > 0 表示nums2 中有nums1 相同的元素
            if num in counts and counts[num] > 0:
                res.append(num)
                counts[num] -= 1 # 查找到對應后的元素失效

        return res
            
          

錯誤案例:

LeetCode—Python—349. 兩個數組的交集 + 350. 兩個數組的交集 II_第1張圖片

原因:如測試用例中的 [5] ,字典中沒有這個值


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色人阁在线 | 深夜在线免费视频 | 草草草在线观看 | 久久精品亚洲一级毛片 | 免费国产不卡午夜福在线观看 | 国内精品久久久久久久97牛牛 | 色妞色综合久久夜夜 | 日韩久久精品 | 国产h版大片在线播放 | 999yy成年在线视频免费看 | 亚洲在线播放 | 成人毛片一区二区三区 | 久热精品视频在线 | 精品福利一区 | 中文字幕日韩精品亚洲七区 | 中文字幕一区日韩在线视频 | 97视频在线免费观看 | 免费精品精品国产欧美在线 | 色女人久久| 99色在线播放 | 亚洲综色 | 欧美一级高清片在线 | 一色屋精品亚洲香蕉网站 | 香蕉视频精品 | 老子影院无码午夜伦不卡 | 天天操天天摸天天碰 | 国产综合久久久久久鬼色 | 成人日批视频 | 国产日产精品久久久久快鸭 | 91久久亚洲精品一区二区 | 国产成人综合91香蕉 | 亚洲精品久久久久久久久久久网站 | h片在线播放 | 久久精品国产99精品最新 | 国产成人在线视频网站 | 一级a俄罗斯毛片免费 | 亚洲精品国产第一区二区图片 | 久草国产在线观看 | 免费在线观看亚洲 | 久久精品7| 四虎国产精品成人永久免费影视 |