甘肃水利工程建设管理网站,企企管理云平台,h5响应式网站建设报价,动漫制作就业方向#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ 哈希表 求解思路 实现代码 运行结果 共勉 题目链接
349. 两个数组的交集
⛲ 题目描述
给定两个数组 nums1 和 nums2 返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1
输入nums1 [1,2,2,1], nums2 [2,2] 输出[2] 示例 2
输入nums1 [4,9,5], nums2 [9,4,9,8,4] 输出[9,4] 解释[4,9] 也是可通过的
提示
1 nums1.length, nums2.length 1000 0 nums1[i], nums2[i] 1000 求解思路实现代码运行结果 ⚡ 哈希表 求解思路
计算两个数组的交集直观的方法是遍历数组 nums1对于其中的每个元素遍历数组 nums2 判断该元素是否在数组 nums2 中如果存在则将该元素添加到返回值。使用哈希集合存储元素则可以在 O(1) 的时间内判断一个元素是否在集合中从而降低时间复杂度。有了基本的思路接下来我们就来通过代码来实现一下。 实现代码
class Solution {public int[] intersection(int[] nums1, int[] nums2) {SetInteger set1 new HashSetInteger();SetInteger set2 new HashSetInteger();for (int num : nums1) {set1.add(num);}for (int num : nums2) {set2.add(num);}return getIntersection(set1, set2);}public int[] getIntersection(SetInteger set1, SetInteger set2) {if (set1.size() set2.size()) {return getIntersection(set2, set1);}SetInteger intersectionSet new HashSetInteger();for (int num : set1) {if (set2.contains(num)) {intersectionSet.add(num);}}int[] intersection new int[intersectionSet.size()];int index 0;for (int num : intersectionSet) {intersection[index] num;}return intersection;}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉