首页 > 试题广场 >

两个数组的交集

[编程题]两个数组的交集
  • 热度指数:4037 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个整数数组分别为nums1, nums2,找到它们的公共元素并按返回。
数据范围:


示例1

输入

[1,2],[2,2,2,2]

输出

[2]

说明

两个数组的公共元素只有2
示例2

输入

[1,2,3],[8,2,2,3,8]

输出

[2,3]

说明

两个数组的公共元素为2和3,返回[3,2]也是一个正确的答案
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums1 int整型ArrayList
     * @param nums2 int整型ArrayList
     * @return int整型ArrayList
     */
   public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here
        ArrayList<Integer> arrayList=new ArrayList<>();
        Set<Integer> set=new HashSet<>();
        for(int i:nums1){
            set.add(i);
        }

        Set<Integer> set1=new HashSet<>();
        for (int j:nums2){
            if (set.contains(j)&&!arrayList.contains(j)){
                arrayList.add(j);
            }
        }
       
        ;
       
       
        return arrayList;

    }

}
发表于 2024-10-18 20:02:52 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums1 int整型ArrayList 
     * @param nums2 int整型ArrayList 
     * @return int整型ArrayList
     */
     public ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here
        HashSet<Integer> set = new HashSet<>();
        HashSet<Integer> temp = new HashSet<>();
        ArrayList<Integer> res = new ArrayList<>();

        for (int i = 0;  i < nums1.size(); i++) {
            set.add(nums1.get(i));
        }

        for (int i = 0; i < nums2.size(); i++) {
            if (set.contains(nums2.get(i))) {
                temp.add(nums2.get(i));
            }
        }

        for (int t : temp) {
            res.add(t);
        }

        return res;
    }
}

发表于 2022-06-09 10:02:29 回复(0)

问题信息

难度:
2条回答 4482浏览

热门推荐

通过挑战的用户

查看代码
两个数组的交集