Lc349_Intersection

 1import java.util.HashSet;
 2import java.util.Set;
 3
 4/**
 5 * 349. 两个数组的交集
 6 * 给定两个数组,编写一个函数来计算它们的交集。
 7 * <p>
 8 * <p>
 9 * <p>
10 * 示例 1:
11 * <p>
12 * 输入:nums1 = [1,2,2,1], nums2 = [2,2]
13 * 输出:[2]
14 * 示例 2:
15 * <p>
16 * 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
17 * 输出:[9,4]
18 * <p>
19 * <p>
20 * 说明:
21 * <p>
22 * 输出结果中的每个元素一定是唯一的。
23 * 我们可以不考虑输出结果的顺序。
24 */
25public class Intersection {
26    /**
27     * 通过hash表实现,因为没有限制大小 所以用集合
28     *
29     * @param nums1
30     * @param nums2
31     * @return
32     */
33    public static int[] intersection(int[] nums1, int[] nums2) {
34        Set<Integer> set = new HashSet<>();
35        Set<Integer> res = new HashSet<>();
36
37
38        for (int i = 0; i < nums1.length; i++) {
39            set.add(nums1[i]);
40        }
41        for (int i = 0; i < nums2.length; i++) {
42            if (set.contains(nums2[i])) {
43                res.add(nums2[i]);
44            }
45        }
46
47
48        int resArray[] = new int[res.size()];
49        int j = 0;
50        for (Integer r : res) {
51            resArray[j++] = r.intValue();
52        }
53
54        return resArray;
55    }
56
57    public static void main(String[] args) {
58        int [] nums1 = {4,9,5}, nums2 = {9,4,9,8,4};
59        intersection(nums1,nums2);
60    }
61}
posted @   小傻孩丶儿  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示