350. 两个数组的交集 II --力扣 --JAVA

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

 题目

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

解题思路

    1. 对两个数组进行排序整理;
    2. 从索引0开始对数组进行遍历,创建List来存储相同的数据;
    3. 元素相等则添加到List中并且索引都右移一位;
    4. 元素不相等则小的索引右移大的不变。

    代码展示

    class Solution {
        public int[] intersect(int[] nums1, int[] nums2) {
            Arrays.sort(nums1);
            Arrays.sort(nums2);
            int index1 = 0;
            int index2 = 0;
            int n = nums1.length;
            int m = nums2.length;
            List<Integer> data = new ArrayList<>();
            while (index1 < n && index2 < m){
                if(nums1[index1] == nums2[index2]){
                    data.add(nums1[index1]);
                    index1++;
                    index2++;
                } else if(nums1[index1] > nums2[index2]){
                    index2++;
                } else {
                    index1++;
                }
            }
            int[] ans = new int[data.size()];
            for (int i = 0; i < data.size(); i++){
                ans[i] = data.get(i);
            }
            return ans;
        }
    }

    image.gif


    目录
    相关文章
    |
    2天前
    |
    并行计算 Java API
    Java 8中的接口默认方法和静态方法以及并行数组
    【5月更文挑战第19天】Java 8引入了许多新特性,其中包括接口的默认方法和静态方法,以及并行数组的能力。这些特性增强了Java的面向对象编程模型和数组处理能力。让我们深入了解它们的概念和实践。
    20 2
    |
    3天前
    |
    算法 搜索推荐 Java
    滚雪球学Java(33):数组算法大揭秘:应用案例实战分享
    【5月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
    31 8
    滚雪球学Java(33):数组算法大揭秘:应用案例实战分享
    |
    4天前
    |
    存储 Java 测试技术
    滚雪球学Java(32):如何理解和实现稀疏数组
    【5月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
    14 1
    滚雪球学Java(32):如何理解和实现稀疏数组
    |
    6天前
    |
    搜索推荐 算法 Java
    滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
    【5月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
    13 0
    滚雪球学Java(29):数组长度和排序算法:让你的程序更高效
    |
    6天前
    |
    存储 Java
    滚雪球学Java(28):轻松掌握数组:访问和遍历技巧
    【5月更文挑战第3天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
    13 2
    滚雪球学Java(28):轻松掌握数组:访问和遍历技巧
    |
    6天前
    |
    算法 C++
    【刷题】Leetcode 1609.奇偶树
    这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
    9 0
    |
    6天前
    |
    算法 索引
    【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
    经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
    13 0
    |
    6天前
    |
    算法
    【刷题】 leetcode 面试题 08.05.递归乘法
    递归算法是一种在计算机科学和数学中广泛应用的解决问题的方法,其基本思想是利用问题的自我相似性,即将一个大问题分解为一个或多个相同或相似的小问题来解决。递归算法的核心在于函数(或过程)能够直接或间接地调用自身来求解问题的不同部分,直到达到基本情况(也称为基础案例或终止条件),这时可以直接得出答案而不必再进行递归调用。
    25 4
    【刷题】 leetcode 面试题 08.05.递归乘法
    |
    6天前
    |
    存储 算法 安全
    【刷题】 leetcode 面试题 01.06 字符串压缩
    来看效果: 非常好!!!过啦!!!
    27 5
    【刷题】 leetcode 面试题 01.06 字符串压缩