《Leetcode》349 兩個陣列的交集 I

2021-10-23 09:01:57 字數 874 閱讀 8091

給定兩個陣列,編寫乙個函式來計算它們的交集。

示例 1:

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

輸出:[2]

示例 2:

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

輸出:[9,4]

給定兩個集合求交集,並且不管兩個集合裡面出現幾個元素,只取1次即可。

有三個方法:

hash法

雙指標法

class solution:

def intersection(self, nums1: list[int], nums2: list[int]) -> list[int]:

#set方法

return list(set(nums1)&set(nums2))

#hash法

dic = {}

res =

nums2 = set(nums2)

for item in nums1:

if item not in dic:

dic[item]=1

else:

dic[item]+=1

for i in nums2:

if i in dic:

return res

#雙指標法

nums1.sort()

nums2.sort()

res = set()

left,right=0,0

while left總結:hash的效率比set和雙指標法的效率更高一些

leetcode349 兩個陣列交集

思想 題目要求給定兩個陣列,編寫乙個函式來計算它們的交集。1.定義變數ans儲存兩個陣列的交集 2.將nums1和nums2去重 3.判斷nums1中的元素num是否在nums2中,若在則新增ans中,不在則繼續for迴圈 class solution object def intersection...

LeetCode349 兩個陣列的交集

給定兩個陣列,寫乙個函式來計算它們的交集。例子 給定num1 1,2,2,1 nums2 2,2 返回 2 題目分析 首先,將num1的元素存進s1,完成了一步去重 同樣,將num2的元素存進s2,也完成了一步去重 將所有的元素存進s.所以s s1 展示 class solution for aut...

Leetcode 349 兩個陣列的交集

給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 輸出結果中的每個元素一定是唯一的。我們可以不考慮輸出結果的順序。class solutio...