当前位置: 首页 > article >正文

力扣 LeetCode 349. 两个数组的交集(Day3:哈希表)

解题思路:

方法一:数组

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        int[] hash = new int[1001];

        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < nums1.length; i++) hash[nums1[i]] = 1;
        for (int i = 0; i < nums2.length; i++)
            if (hash[nums2[i]] == 1) set.add(nums2[i]);

        int[] res = new int[set.size()];
        int cnt = 0;
        for (int s : set) res[cnt++] = s;
        
        return res;
    }
}

方法二:set

注意使用set.contains判断是否已有该值

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<>();
        Set<Integer> res = new HashSet<>();

        for (int num1 : nums1) set.add(num1);
        for (int num2 : nums2)
            if (set.contains(num2)) res.add(num2);

        int[] ans = new int[res.size()];
        int cnt = 0;
        for (int x : res)
            ans[cnt++] = x;
            
        return ans;
    }
}

 


http://www.kler.cn/a/393252.html

相关文章:

  • linux c/c++最高效的计时方法
  • Redis - 集群(Cluster)
  • 【专题】计算机网络之网络层
  • 【vue2.0入门】vue基本语法
  • mongoDB的安装及使用
  • DNS面临的4大类共计11小类安全风险及防御措施
  • 一文理解吸收《红黑树》的精华
  • AI生成字幕模型whisper介绍与使用
  • 软件开发中的 Pull Request 工作流:逐步指南
  • springboot读取modbus数据
  • 《AI 使生活更美好》
  • 【go从零单排】gin+gorm理解及实现CRUD
  • 机器学习系列----KNN分类
  • 【Linux网络】Linux网络编程套接字,UDP与TCP
  • PCB安全电气间距
  • Python网络爬虫与数据采集实战——网络协议与HTTP
  • linux命令详解,存储管理相关
  • 排序算法 -堆排序
  • SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间
  • 学Linux的第八天
  • 数字IC实践项目(10)—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证(付费项目)
  • uniapp 上传 base64 图片
  • ubuntu22.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
  • 除了 Postman,还有什么好用的 API 测试工具吗
  • uni-app中使用 unicloud 云开发平台③