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

【LeetCode:349. 两个数组的交集 + 哈希表】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,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

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路
  1. 计算两个数组的交集,直观的方法是遍历数组 nums1,对于其中的每个元素,遍历数组 nums2 判断该元素是否在数组 nums2 中,如果存在,则将该元素添加到返回值。
  2. 使用哈希集合存储元素,则可以在 O(1) 的时间内判断一个元素是否在集合中,从而降低时间复杂度。
  3. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer> set1 = new HashSet<Integer>();Set<Integer> set2 = new HashSet<Integer>();for (int num : nums1) {set1.add(num);}for (int num : nums2) {set2.add(num);}return getIntersection(set1, set2);}public int[] getIntersection(Set<Integer> set1, Set<Integer> set2) {if (set1.size() > set2.size()) {return getIntersection(set2, set1);}Set<Integer> intersectionSet = new HashSet<Integer>();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;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/463263.html

相关文章:

  • 根据语音生成视频33搜帧
  • 目标检测数据集图片及标签同步锐化
  • 滚雪球学Redis[6.4讲]:Redis消息队列:构建高效的消息通信与任务调度系统
  • 《计算机视觉》—— 换脸
  • 【JavaEE初阶】深入透析文件-IO关于文件内容的操作(四种文件流)
  • 复习:react 中的 refs,怎么使用,有哪些使用场景
  • Python OpenCV精讲系列 - 目标检测与识别深入理解(二十)
  • golang中的上下文
  • Navigation2 算法流程
  • OpenAI swarm+ Ollama快速构建本地多智能体服务 - 1. 服务构建教程
  • HTB:Wifinetic[WriteUP]
  • 专业学习|马尔可夫链(概念、变体以及例题)
  • RK3576 安卓SDK编译环境搭建
  • Renesas R7FA8D1BH (Cortex®-M85) 上光电编码器测速功能
  • 软件测试学习笔记丨Linux三剑客-sed
  • Vue脚手架学习 vue脚手架配置代理、插槽、Vuex使用、路由、ElementUi插件库的使用
  • 使用yml文件安装环境时,如何添加conda和pip的镜像源
  • c语言经典100例
  • 百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现
  • 【分布式微服务云原生】《Redis RedLock 算法全解析:应对时钟漂移与网络分区挑战》
  • OceanBase 的写盘与传统数据库有什么不同?
  • 用Java爬虫API,轻松获取taobao商品SKU信息
  • OpenHarmony 入门——ArkUI 自定义组件内同步的装饰器@State小结(二)
  • 【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符设备开发入门,点亮LED
  • 搬砖14、Python网络编程入门
  • Transformer: Attention is All you need
  • C++:排序算法
  • 期货日内稳赢策略:双15交易法详解
  • 2024年10月第2个交易周收盘总结:怎样卖出!
  • mysql 不支持utf8mb4_0900_ai_ci