两个数组的交集 II

简介: 两个数组的交集 II

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

示例1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]

输出:[2,2]

示例2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]

输出:[4,9]

1.先对数组进行排序相同的再加入list列表


[4,5,9]


[4,4,8,9,9]


两数组先进行排序,运用双指针起点都相同,然后相等的就加入list列表,如果其中两个不相等则值小的一方先继续往前寻求和大的那个看是否有相同的最终不超过最小数组或者到终点为止。


分析:通过用双指针同时进行比较可以同时得到数组中数的出现次数就相同,因为同时有或者其中一个有另一个就去找这样就都保证了次数相同不用另外用一个index记录

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int i=0,j=0;
        List<Integer> list=new ArrayList<>();
        while(i<nums1.length&&j<nums2.length){
            if(nums1[i]<nums2[j]){
                i++;
            }
            else if(nums1[i]>nums2[j]){
                j++;
            }
            else{
                list.add(nums1[i]);
                i++;
                j++;
            }
        }
        int[] res=new int[list.size()];
        for(int k=0;k<list.size();k++){
            res[k]=list.get(k);
        }
        return res;
    }
}



相关文章
|
iOS开发 MacOS
LabVIEW如何使用热键去触发自定义的事件
LabVIEW如何使用热键去触发自定义的事件
385 1
|
开发框架 Unix Linux
深度探索:Qt CMake工程编译后的自动打包策略
深度探索:Qt CMake工程编译后的自动打包策略
865 0
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
307 0
|
10月前
|
API 开发者
了解 HTTP 的PUT 与 POST方法的综合指南
HTTP PUT 和 POST 方法是构建 Web 应用与 API 的核心工具,用于资源的创建与更新。PUT 方法通过指定 URL 更新或创建完整资源,具有幂等性;而 POST 方法更灵活,主要用于创建新资源,但不具备幂等性。本文详细对比了两者在请求体、URL 使用、资源处理等方面的区别,并提供了实际应用示例,帮助开发者根据场景选择合适的方法以优化 API 设计。
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
存储 分布式计算 Java
踏上大数据第一步:flume
Flume 是一个分布式、可靠且高效的系统,用于收集、聚合和移动大量日志数据。它是 Apache 顶级项目,广泛应用于 Hadoop 生态系统中。Flume 支持从多种数据源(如 Web 服务器、应用服务器)收集日志,并将其传输到中央存储(如 HDFS、HBase)。其核心组件包括 Source、Channel 和 Sink,分别负责数据获取、临时存储和最终存储。本文还介绍了在 Ubuntu 20.04 上安装 Flume 1.9.0 的步骤,涵盖 JDK 安装、Flume 下载、解压、配置环境变量及验证安装等详细过程。
324 10
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的突破与挑战####
本文深入探讨了深度学习技术在图像识别领域的最新进展,重点分析了卷积神经网络(CNN)的架构创新、生成对抗网络(GANs)的应用拓展以及自监督学习策略的兴起。通过综述近年来的研究成果,本文揭示了深度学习如何不断推动图像识别技术的边界,同时指出了当前面临的主要挑战,包括数据偏差、模型泛化能力及计算资源依赖等问题,并展望了未来的发展方向。 ####
263 2
|
弹性计算 Kubernetes 安全
容器化管理ACK
ACK一种管理容器平台的管理架构
405 2
java工具类调用service层,mapper层
java工具类调用service层,mapper层
318 1

热门文章

最新文章