349. Intersection of Two Arrays

#两个数组的交集

这个问题在之前的一个电话面试中真实出现过,当时因为对数据结构和算法真的一脸懵逼也没有刷题, 所以当时没有做出来;

后来在Leetcode上终于找到了这个题目;

现在来写出我的答案

时间复杂度是O(n); 

利用了HahsMap的特性:

HashMap是结构,

一个HashMap里面key不可以重复,一个key对应一个value;

当重复插入相同的key值的时候,若原来的value是Null,则更新;

否则

public int[] intersection(int[] nums1, int[] nums2) {
        HashMap hs=new HashMap();
        for(int x:nums1){
            hs.put(x, null);
        }
        //int count=0;
        ArrayList arr=new ArrayList();
        for(int y:nums2){
            if(hs.containsKey(y) && hs.get(y)==null){
                hs.put(y, y);
                arr.add(y);
            }
        }
        int[] ret=new int[arr.size()];
        for(int i=0;i

你可能感兴趣的:(算法,leetcode)