Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2]
.
Note:
- Each element in the result must be unique.
- The result can be in any order.
题目标签:Hash Table
题目给了我们两个 array, 让我们找到在两个array 中重复的数字。
利用HashSet,把nums1 的数字都存入set1;
遍历nums2, 把nums2 与 set1 中重复的数字,存入HashSet intersect中;
最后遍历intersect 把数字存入 res[] 返回。
Java Solution:
Runtime beats 71.41%
完成日期:06/05/2017
关键词:HashSet
关键点:利用两个HashSet
1 class Solution 2 { 3 public int[] intersection(int[] nums1, int[] nums2) 4 { 5 HashSet<Integer> set1 = new HashSet<>(); 6 HashSet<Integer> intersect = new HashSet<>(); 7 int[] res; 8 int pos = 0; 9 10 // store nums1 element into set1 11 for(int n: nums1) 12 set1.add(n); 13 14 15 // store intersect element into intersect 16 for(int n: nums2) 17 { 18 if(set1.contains(n)) 19 intersect.add(n); 20 } 21 22 res = new int[intersect.size()]; 23 24 25 for(Integer n: intersect) 26 res[pos++] = n; 27 28 29 return res; 30 } 31 }
参考资料:N/A
LeetCode 题目列表 - LeetCode Questions List