Easy
470881FavoriteShare
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
C++:
/*
* @Autor: SourDumplings
* @Date: 2019-09-13 23:05:34
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/intersection-of-two-arrays/
*/
class Solution
{
public:
vector<int> intersection(vector<int> &nums1, vector<int> &nums2)
{
set<int> s1, s2;
for (auto &&i : nums1)
{
s1.insert(i);
}
for (auto &&i : nums2)
{
s2.insert(i);
}
vector<int> res;
for (auto &&i : s1)
{
if (s2.find(i) != s2.end())
{
res.push_back(i);
}
}
return res;
}
};
Java:
import java.util.HashSet;
import java.util.Set;
/*
* @Autor: SourDumplings
* @Date: 2019-09-13 23:16:11
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/intersection-of-two-arrays/
*/
class Solution
{
public int[] intersection(int[] nums1, int[] nums2)
{
Set<Integer> s1 = new HashSet<>();
Set<Integer> s2 = new HashSet<>();
for (int i : nums1)
{
s1.add(i);
}
for (int i : nums2)
{
s2.add(i);
}
s1.retainAll(s2);
int n = s1.size();
int[] res = new int[n];
int j = 0;
for (int i : s1)
{
res[j++] = i;
}
return res;
}
}