【哈希表专题】—— 两个数组的交集

2023-11-19

LeetCode 349: 两个数组的交集

在这里插入图片描述
⭕️ 解题思路:
(1)“元素唯一”,我们想到可以用Set集合,因为不能存储重复的元素

(2)因为肯定要涉及两个数组元素的比较,所以我们创建两个哈希集合,将其中一个数组的元素放到集合,遍历另一个数组,如果在集合中,就将这个元素添加到另一个哈希集合中。

(3)最后就要将哈希表转化为数组,推荐一下两种方法:

  • 方法一:初始化一个数组,遍历结果哈希表
int [] arr = new int[resSet.size()];
int index = -1;
for(Integer i : resSet){
	arr[++index] = i;
}
  • 方法二:利用stream流操作将HashSet转化为数组
int[] a = set.stream().mapToInt(Integer::intValue).toArray();

PS:

(1)尽管集合提供toArrays()方法,但是返回的对象是Object的
(2)方法一比方法二中运行快,方法二在开发中常用


代码部分:

class Solution {
    static final int N = 1010;
    
    public int[] intersection(int[] nums1, int[] nums2) {
        
        HashSet<Integer> set = new HashSet<Integer>();
        HashSet<Integer> resSet = new HashSet<Integer>();
      
        int index = -1;
        for(int i = 0; i < nums1.length; i++){
            set.add(nums1[i]);
        }
        for(int j = 0; j < nums2.length; j++){           
            if(set.contains(nums2[j])){
                resSet.add(nums2[j]);
            }
        }
        int [] arr = new int[resSet.size()];
        for(Integer k : resSet){
            arr[++index] = k;
        }
        return arr;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【哈希表专题】—— 两个数组的交集 的相关文章

随机推荐

  • 交换机二三层转发原理简单总结

    首先二层转发是基于MAC地址转发 三层转发基于IP地址转发 但是这并不意味着仅仅依靠IP地址就能转发 三层转发是建立在二层的基础上的 而仅仅依靠MAC地址是能够转发的 另外 由于二三层转发基于MAC地址 IP地址 FDB表 MAC地址学习
  • 2019年感:忆往昔考博岁月,看今朝花样年华

    人生的际遇谁又能说清楚 就像师范类毕业的女神梦想着当一名老师 结果却阴差阳错穿上了警服 而本应该奔波北上广深的程序员 却成为了一名大学老师 两条平行线的男女 却结为了连理 再如 一心准备中科院却因英语差一分惜败 几乎裸考的学校却可能结出果实
  • 多模态预训练模型CLIP:中文版本开放使用

    公众号原文 关注公众号 获取一手论文咨询 多模态预训练模型CLIP 中文版本开放使用 中文项目地址 https github com real brilliant chinese clip in tensorflow 01 背景 CLIP是
  • 【车联网原型系统|四】adhoc组网+frp内网穿透

    物联网原型系统导航 车联网原型系统 一 项目介绍 需求分析 概要设计 https blog csdn net weixin 46291251 article details 125807297 车联网原型系统 二 数据库 应用层协议设计 h
  • 【Python三大结构练习4】

    目录 1 哥德巴赫猜想 2 判断是否回文 3 Add ings 4 身份证号掩盖出生日期 5 敏感词过滤 1 哥德巴赫猜想 题目描述 一个大正偶数总可以分解为两个质数之和 试编写程序验证哥德巴赫猜想 输入一个正偶数 输出该偶数的质数和分解
  • 使用 Spring 2.5 注释驱动的 IoC 功能

    基于注释 Annotation 的配置有越来越流行的趋势 Spring 2 5 顺应这种趋势 提供了完全基于注释配置 Bean 装配 Bean 的功能 您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置 本文通过实例详
  • Selenium脚本转化Java代码

    Selenium录制的脚本可以转换Java JUnit单元测试 可以使用Java项目管理工具Maven统一运行 从Selenium脚本中导出Java代码 按照如下步骤 使用Java运行Selenium脚本 使用Chome导出Java脚本必须
  • iframe与vue

    iframe与vue 在vue中使用 创建一个vue页面 iframe的src属性绑定需要的页面 放在template中 在iframe种调用vue的方法 a页面url为a demo com a页面中iframe引用的b页面url为b de
  • laravel8框架-开发实战项目总结(一)

    一 laravel框架的目录结构 app 应用目录 保存项目中的控制器 模型等 bootstrap 保存框架启动的相关文件 config 配置文件目录 database 数据库迁移文件和数据填充文件 public 应用入口文件index p
  • JAVA8 String 面试练习 与 intern()

    idea debug 查看内存信息 public class StringTest4 public static void main String args System out println 2293 System out printl
  • 深入浅出 - 公钥、私钥和数字签名最通俗的理解

    一 公钥加密 假设一下 我找了两个数字 一个是1 一个是2 我喜欢2这个数字 就保留起来 不告诉你们 私钥 然后我告诉大家 1是我的公钥 我有一个文件 不能让别人看 我就用1加密了 别人找到了这个文件 但是他不知道2就是解密的私钥啊 所以他
  • live-server的使用

    本地开发常常需要搭建临时的服务 第一时间我们会想到用http server 但现在流行修改文件浏览器自动刷新hot socketing 热拔插 如live reload 若想浏览器自动打开项目 用opener 现在live server实现
  • 国密SM2 Https服务器搭建--全网最完整方案

    在密码协议层面 国密标准定义了sm2密钥交换协议 IPSec技术规范 SSL 技术规范三个密码协议 在实际应用系统中为保障系统完整性 保密性 不可抵赖性三方面 应采用规范协议实现安全性保障 不要采用自定义密码协议 本文通过江南天安开源国密o
  • java实现将整数转化为中文大写金额

    转载请注明出处 http blog csdn net xiaojimanman article details 49584567 http www llwjy com blogdetail 741867855ccfe191504c83b3d
  • windows修改远程端口

    windows修改远程端口 一 修改注册表 关于远程桌面的注册表的位置 由于系统版本的不同 文件存在的位置也不同 核心是寻找名称类似CurrentControlSet的目录下的PortNumber文件 其是远程桌面端口的端口配置 1 按 w
  • golang: Logrus实现日志打印

    Github https github com sirupsen logrus golang标准库的日志框架非常简单 仅仅提供了print panic和fatal三个函数 对于更精细的日志级别 日志文件分割以及日志分发等方面并没有提供支持
  • VisualStudio—Remote Debug

    主要用来解决本地调试没问题发布到远端后却报错的项目 一 Windows Debug Windows 本文叙述采用的VS2022 远端 windows服务器 安装远程调试器 远端 windows服务器 安装过程省略 详见官方参考链接中设置远程
  • 【程序员面试金典】有一个单色屏幕储存在一维数组中,其中数组的每个元素代表连续的8位的像素的值,请实现一个函数,将第x到第y个像素涂上颜色(像素标号从零开始),并尝试尽量使用最快的办法。

    题目描述 有一个单色屏幕储存在一维数组中 其中数组的每个元素代表连续的8位的像素的值 请实现一个函数 将第x到第y个像素涂上颜色 像素标号从零开始 并尝试尽量使用最快的办法 给定表示屏幕的数组screen 数组中的每个元素代表连续的8个像素
  • 【文献笔记_因果+文本】Commonsense causal reasoning between short texts

    论文地址 https www microsoft com en us research wp content uploads 2016 07 12818 57567 1 PB pdf 摘要 常识因果推理是捕捉和理解事件和动作之间因果依赖关系
  • 【哈希表专题】—— 两个数组的交集

    LeetCode 349 两个数组的交集 解题思路 1 元素唯一 我们想到可以用Set集合 因为不能存储重复的元素 2 因为肯定要涉及两个数组元素的比较 所以我们创建两个哈希集合 将其中一个数组的元素放到集合 遍历另一个数组 如果在集合中