LeetCode 349 兩個陣列的交集

2021-10-01 17:41:51 字數 917 閱讀 5539

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

示例 1:

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

輸出: [2]

示例 2:

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

輸出: [9,4]

說明:輸出結果中的每個元素一定是唯一的。

我們可以不考慮輸出結果的順序。

假設長度小的陣列為 less, 長度為 m;長度大的陣列為 more, 長度為 n

使用長度小的陣列建立雜湊表 lessset,用於匹配查詢,時間複雜度為 o

(m), 最大額外空間複雜度為 o

(m).

迴圈長度大的陣列,通過雜湊表 lessset 匹配與長度小的陣列的交集,查詢時間複雜度為 o(1

),總的時間複雜度為 o

(n).

總體的時間複雜度為 o

(m+n)

, 額外空間複雜度為 o

(m+n)

.

class

solution

//長度大的陣列進行查詢,與雜湊表進行匹配

hashset

moreset =

newhashset

();for

(int i =

0,len = more.length;i//set 轉為 陣列

int size = moreset.

size()

, k =0;

int[

] ans =

newint

[size]

;for

(int n:moreset)

return ans;

}}

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...