美文网首页
两个数组的交集

两个数组的交集

作者: Zhang小二 | 来源:发表于2019-04-11 10:40 被阅读0次

    题目描述

    image.png

    思路:
    1、首先想到的是python自带的set结构,解决此问题非常简单,有点偷懒了。。
    代码如下:

    class Solution:
        def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
            set1 = set(nums1)
            set2 = set(nums2)
            i_set = set1 & set2
            return list(i_set)
    
    image.png

    2、如果编程语言不支持集合操作,使用hash还是比较方便的,至少判断key是否存在的开销只有O(1),以下是java版的实现方法。

    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
            HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
            for(int i = 0; i < nums1.length; i++) {
                if (!map.containsKey(nums1[i])) {
                    map.put(nums1[i], 1);
                }
            }
            HashMap<Integer, Integer> map2 = new HashMap<Integer, Integer>();
            for(int i = 0; i < nums2.length; i++) {
               if(map.containsKey(nums2[i])) {
                   map2.put(nums2[i], 2);
               }
            }
            int[] nums3 = new int[map2.size()];
            int i = 0;
            for(Integer key: map2.keySet()) {
                nums3[i] = key;
                i++;
            }
    
            return nums3;
        }
    }
    
    image.png

    相关文章

      网友评论

          本文标题:两个数组的交集

          本文链接:https://www.haomeiwen.com/subject/qnfwiqtx.html