zoukankan      html  css  js  c++  java
  • [leetCode]349. 两个数组的交集

    csdn:https://blog.csdn.net/renweiyi1487/article/details/109264635

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

    示例 1:

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

    示例 2:

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

    哈希

    求两个数组的交集就是求两个数组的共有元素,可以使用两个set集合来存放每个数组中不重复的元素,然后迭代另一个set集合中的元素,如果迭代元素属于另一个set集合则该元素属于交集中的元素。

    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
            List<Integer> ans = new ArrayList<>();
            HashSet<Integer> set1 = new HashSet<>();
            HashSet<Integer> set2 = new HashSet<>();
            for (Integer num : nums1) {
                set1.add(num);
            }
            for (Integer num : nums2) {
                set2.add(num);
            }
            Iterator<Integer> it = set2.iterator();
            while (it.hasNext()) {
                int num = it.next();
                if (set1.contains(num)) {
                    ans.add(num);
                }
            }
            int[] finalAns = new int[ans.size()];
            for (int i = 0; i < finalAns.length; i++) {
                finalAns[i] = ans.get(i);
            }
            return finalAns; 
        }
    }
    

    写法二:

    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
            int[] output = new int[nums1.length];
            HashSet<Integer> set1 = new HashSet<>();
            HashSet<Integer> set2 = new HashSet<>();
            for (Integer num : nums1) {
                set1.add(num);
            }
            for (Integer num : nums2) {
                set2.add(num);
            }
            int idx = 0;
            for (Integer num : set2) {
                if (set1.contains(num))
                    output[idx++] = num;
            }
            return Arrays.copyOf(output, idx); 
        }
    }
    
  • 相关阅读:
    CMDB运维开发项目
    Twisted使用和scrapy源码剖析
    scrapy爬虫框架
    rabbitmq:centos7安装与python调用
    github创建远程仓库
    git使用
    Python模块:paramiko
    centos7安装python3和Django后,ModuleNotFoundError: No module named '_sqlite3'
    21. java面向对象
    20. java面向对象
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13870851.html
Copyright © 2011-2022 走看看