LeetCode--349.两个数组的交集(哈希表)

题目描述

给定两个数组 nums1nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序

示例 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

代码

方法一

java 复制代码
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        // 给定一个哈希数组
        boolean[] hash = new boolean[1001];
        for(int i : nums1){
            hash[i] = true;
        }
        // 结果列表
        List<Integer> resList = new ArrayList<>();
        for(int i : nums2){
            // 如果数组中有nums1添加的元素,加入结果集合
            if(hash[i]){
                // 防止2次添加
                hash[i] = false;
                resList.add(i);
            }
        }
        // 转换成数组
        int[] res = new int[resList.size()];

        for(int i=0; i<resList.size(); i++){
            res[i] = resList.get(i);
        }
        return res;

    }
}

方法二

java 复制代码
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        // 给定一个哈希数组
        int[] hash = new int[1001];
        for(int i : nums1){
            hash[i] = 1;
        }
        // 结果集合
        Set<Integer> resSet = new HashSet<>();
        for(int i : nums2){
            // 如果数组中有nums1添加的元素,加入结果集合
            if(hash[i] == 1){
                resSet.add(i);
            }
        }

        // 通过StreamAPI将结果转为数组
        return resSet.stream().mapToInt(Integer::intValue).toArray();

    }
}
相关推荐
朦胧之4 小时前
AI 编程-老项目改造篇
java·前端·后端
kisshyshy9 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
程序猿大帅9 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪10 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly10 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨10 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜10 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
猿人谷16 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
SimonKing17 小时前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户2986985301417 小时前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端