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


    目录
    相关文章
    |
    1天前
    |
    Java 索引
    Java中数组详解
    Java中数组详解
    37 19
    |
    1天前
    |
    Java
    解析java中的数组
    解析java中的数组
    9 3
    |
    1天前
    |
    算法
    leetcode代码记录(寻找两个正序数组的中位数
    leetcode代码记录(寻找两个正序数组的中位数
    9 2
    |
    1天前
    |
    索引
    leetcode代码记录(最长重复子数组
    leetcode代码记录(最长重复子数组
    5 0
    |
    1天前
    leetcode代码记录(两个数组的交集
    leetcode代码记录(两个数组的交集
    7 1
    |
    1天前
    leetcode代码记录(最大子数组和
    leetcode代码记录(最大子数组和
    8 2
    |
    2天前
    |
    存储 安全 Java
    Java一分钟之-数组的创建与遍历
    【5月更文挑战第8天】本文介绍了Java中数组的基本概念、创建与遍历方法,强调了类型匹配和数组越界问题。示例展示了如何创建整数数组并初始化元素,同时提供了避免数组越界的策略。对于遍历,文章提到了for循环和增强型for循环,并给出了防止错误的建议,如正确声明类型、初始化数组、安全索引操作及使用合适的数据结构。遵循这些指导可帮助开发者有效管理Java数组并减少错误。
    11 0
    |
    1天前
    |
    Java
    【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
    【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
    9 0
    |
    1天前
    |
    设计模式 消息中间件 安全
    【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
    【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
    8 0
    |
    1天前
    |
    安全 Java 程序员
    【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
    【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
    5 0