zoukankan      html  css  js  c++  java
  • 两个数组的交集

    给定两个数组,编写一个函数来计算它们的交集。

    示例 1:

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

    输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    输出:[9,4]
     

    说明:

    输出结果中的每个元素一定是唯一的。
    我们可以不考虑输出结果的顺序。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/intersection-of-two-arrays

    import java.util.TreeSet;
    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
    
            TreeSet<Integer> set=new TreeSet<>();
            for(int nums:nums1){
                set.add(nums);
            }
            ArrayList<Integer> list=new ArrayList<>();
            for(int num:nums2){
                if(set.contains(num)){
                    list.add(num);
                    set.remove(num);
                }
            }
            int res[]=new int[list.size()];
            for(int i=0;i<list.size();i++){
                res[i]=list.get(i);
            }
            return res;
        }
    }

    解题思路:由于是要求解两个数组的交集,又要求唯一,自然而然想到了set集合;

    这里使用一个集合,将数组1中所有元素加进集合;对第二个数组进行遍历,判断集合中是否存在数组中的元素,存在的话新建一个list集合保存下来,之后移除set中已经存在的元素;最后遍历list中的元素,保存到新的数组中即可;

  • 相关阅读:
    错误日志记录代码
    将数组转换成datatable
    C#类头注释
    判断当前页面是否接收到了Get或者Post请求
    HttpRequestUtil类
    WeChatUtil类
    返回上一页
    更改同步异步
    限制只能输入数字
    判断浏览器及版本
  • 原文地址:https://www.cnblogs.com/-jiuqi/p/13395280.html
Copyright © 2011-2022 走看看