刷题专栏(二十四):两个数组的交集

简介: 刷题专栏(二十四):两个数组的交集

前言

刷题专栏到目前已经是第二十四篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天的这道题,还是关于数组这个最常用的数据结构相关的题。

《两个数组的交集》这道题到底如何解出来,下面一起来看一下吧。image.png

算法题:两个数组的交集

通过题目的描述来看,是要通过两个数组中,找出相交的元素。

这里面的相交的定义如何理解。

其实只需要找到数组1中包含数组2的元素即可,在一定程度上,数组1是可能包含数组2的。

但是在数组1不全部包含数组2的时候,只需要找到最好连续包含的元素即可。

那么代码要如何写呢,其实有这么几种方法是可以使用的。

比如移动的指针、遍历获取值,然后通过流去拿出结果值等等。

下面来看一下具体的代码展示吧。

代码展示

本次执行的代码如下,大家可以自行参考一下。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(Arrays.toString(solution.intersection(new int[]{1,2,2,1}, new int[]{2,2})));
    }
    public int[] intersection(int[] nums1, int[] nums2) {
        List<Integer> resultList = new ArrayList<>();
        Set<Integer> set = new HashSet<>();
        for (int i : nums1) {
            set.add(i);
        }
        for (int i : nums2) {
            if (set.contains(i)) {
                set.remove(i);
                resultList.add(i);
            }
        }
        return resultList.stream().mapToInt(Integer::intValue).toArray();
    }
}

代码执行结果

代码执行实在是一个字,惨。

没想到这么差劲,估计是使用了steam流的关系。image.png我看到有些大佬使用两行代码就解决了这个问题,就是使用的Stream流的方式。

有兴趣的话,大家可以去试一下。

总结

今天的这道题主要是针对多个数组之间的处理,如果追求性能的话,可以使用双指针的方式去处理,效果会好很多。

目录
相关文章
|
9月前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
255 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
|
小程序 前端开发
保健品商城小程序模板源码
保健品商城小程序模板源码
1004 3
|
Linux 数据安全/隐私保护 Docker
优化Docker权限管理:配置Docker用户组
Docker 利用 Linux 的用户和组权限来管理对 Docker 守护进程的访问权限。一般情况下,只有 root 用户和属于 docker 用户组的用户才被允许访问 Docker 守护进程。在 Linux 系统上使用 Docker 时,如果您尚未配置 docker 用户组,那么作为非 root 用户执行 Docker 相关命令将要求使用 sudo 来提升权限。
1518 2
优化Docker权限管理:配置Docker用户组
|
传感器 监控 搜索推荐
智能纺织品:可穿戴科技的新潮流
【9月更文挑战第22天】智能纺织品作为可穿戴科技的新潮流,正以其独特的魅力和卓越的性能,引领着纺织行业的创新发展。随着技术的不断进步和应用领域的不断拓展,智能纺织品将在更多领域得到应用和推广,为人们的生活带来更多便利与可能性。我们有理由相信,在不久的将来,智能纺织品将成为人们生活中不可或缺的一部分,共同推动社会的可持续发展与繁荣。
|
弹性计算 监控 安全
利用WordPress 模板建站,如果利用阿里云国际版获取网站高流量
利用WordPress 模板建站,如果利用阿里云国际版获取网站高流量
|
安全 Android开发 数据安全/隐私保护
探索Android应用开发的新趋势
随着技术的不断进步,Android应用开发领域也在经历着翻天覆地的变化。从Kotlin的崛起到Flutter的流行,再到Jetpack Compose的创新,开发者们正面临着前所未有的机遇和挑战。本文将深入探讨这些新兴技术如何影响当前的开发实践,并预测它们将如何塑造未来的移动应用开发。 【7月更文挑战第26天】
214 3
|
算法 关系型数据库 MySQL
复购率 mysql 实例(sample database classicmodels _No.1 )
复购率 mysql 实例(sample database classicmodels _No.1 )
235 0
|
监控 数据可视化 BI
基于Dataphin+Flink构建期货交易监察实时应用
新一代证券交易监察系统利用大数据和实时计算技术强化风险控制、交易数据处理、识别异常交易等能力。通过Dataphin与Flink结合,构建期货交易监察实时数据应用;借助QuickBI用于打造实时看板和预警体系,实现期货交易监察的实时可视化分析和自动化预警。
691 0
|
存储 Kubernetes 应用服务中间件
Kubernetes Pod
Kubernetes Pod
428 0
Kubernetes Pod
|
数据采集 监控 物联网
MQTT协议在智能制造中的应用案例与效益分析
【6月更文挑战第8天】MQTT协议在智能制造中的应用案例与效益分析
510 1