切換
舊版
前往
大廳
主題

LeetCode - 349. Intersection of Two Arrays 解題心得

Not In My Back Yard | 2020-10-06 00:07:09 | 巴幣 2 | 人氣 261

題目連結:


題目意譯:
給定兩個陣列,撰寫一個函式去找出它們重疊的地方。

注:
結果中的每個元素應為唯一的。
結果可以為任意順序。



範例測資:
範例 1:
輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]

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


解題思維:
先掃過其中一個陣列,將該陣列裡的所有元素丟進一個雜湊表(Hash Table)裡。然後再掃過另一個陣列,利用雜湊表去找該陣列的數字有沒有在雜湊表裡出現。

有的話就代表,兩個陣列都有該元素,因此應出現在結果當中(用另一個陣列存結果)。但是因為可能會有多個重複的,因此每找到一個兩者皆有的元素就要從雜湊表裡移除該元素,避免重複放入結果中。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作