349. Intersection of Two A

2018-12-02  本文已影响0人  IvyAutumn
image.png

题目解析:求两个集合的交集。不能有重复数字,就想到使用数据类型Set。
逻辑原理:
数组一的数据存入hashset
遍历数组二如果set中存有该数据存入arraylist中,同时从set中remove该元素,防止多个元素重复
遍历list转变为array返回数据

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<Integer>();
        List<Integer> arrayList = new ArrayList<Integer>();
        for(Integer num : nums1)
            set.add(num);
        for(Integer num : nums2){
            if(set.contains(num))
                arrayList.add(num);
                set.remove(num);
        }
        int size = arrayList.size();
        int[] inter = new int[size];
        int count = 0;
        for(Integer num : arrayList)
            inter[count++]=num;
        
        return inter;
    }
}

几个关键考虑点的总结:

  1. 根据元素不重复的特点选择数据存储的数据结构:HashSet
  2. ArrayList用数组存储元素,其大小可以动态变化
  3. 遍历ArrayList转变为数组
上一篇 下一篇

猜你喜欢

热点阅读