给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:
- 输出结果中的每个元素一定是唯一的。
- 我们可以不考虑输出结果的顺序。
题目分析:
根据题目的意思,需要求出两个数组中的相同元素,不需要考虑输出顺序,所以就涉及到相同元素的处理,所以可以采用HashSet()来存储两个数组元素,那么它就会自动消除重复元素。
代码实现:
public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> nums = new HashSet<>(); Set<Integer> result = new HashSet<>(); for (int i = 0; i < nums2.length; i++) { nums.add(nums2[i]); //去掉重复元素了 } for (int i = 0; i < nums1.length; i++) { if (nums.contains(nums1[i])) result.add(nums1[i]); } int[] num3 = new int[result.size()]; Iterator iterator = result.iterator(); int i = 0; while (iterator.hasNext()) { num3[i++] = (int)iterator.next(); //集合变为数组 } return num3; }
主函数:
public static void main(String[] args) { S1 s = new S1(); int num[] = s.intersection(new int[]{4,9,5}, new int[]{9,4,9,8,4}); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " "); } }
运行结果:
4 9