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; } }