題目連結:
題目意譯:
給定兩個陣列,撰寫一個函式去找出它們重疊的地方。
注:
結果中的每個元素應為唯一的。
結果可以為任意順序。
範例測資:
範例 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)裡。然後再掃過另一個陣列,利用雜湊表去找該陣列的數字有沒有在雜湊表裡出現。
有的話就代表,兩個陣列都有該元素,因此應出現在結果當中(用另一個陣列存結果)。但是因為可能會有多個重複的,因此每找到一個兩者皆有的元素就要從雜湊表裡移除該元素,避免重複放入結果中。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。