349, 350. Intersection of Two Arrays | & ||

Intersection of Two Arrays

Given two arrays, write a function to compute their intersection.

Example

Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2].

分析:

这种考察一个数是否存在另一个集合中,一般来讲,都会用到HashSet. 如果不允许用额外的存储空间,可以对nums1排序,然后使用二分查找。

 1 public class Solution {
 7     public int[] intersection(int[] nums1, int[] nums2) {
 8         if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0) {
 9             int[] arr = new int[0];
10             return arr;
11         }
12         
13         Set<Integer> set = new HashSet<>();
14         for (int i : nums1) {
15             set.add(i);
16         }
17         
18         List<Integer>  list = new ArrayList<>();
19         
20         for (int i : nums2) {
21             if (set.contains(i)) {
22                 list.add(i);
23                 set.remove(i);
24             }
25         }
26         
27         return list.stream().mapToInt(i->i).toArray();
28     }

Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection.

Example

Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2, 2].

这一次需要把所有的都找出来,可以用HashMap<Integer, Integer> 来存储,第一个Integer指的是数,第二个指的是那个数存在的个数。

 1 public class Solution {
 2     public int[] intersect(int[] nums1, int[] nums2) {
 3         if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0) {
 4             int[] arr = new int[0];
 5             return arr;
 6         }
 7         
 8         Map<Integer, Integer> map = new HashMap<>();
 9         for (int i : nums1) {
10             map.put(i, map.getOrDefault(i, 0) + 1);
11         }
12         
13         ArrayList<Integer>  list = new ArrayList<>();
14         
15         for (int i : nums2) {
16             if (map.containsKey(i) && map.get(i) >= 1) {
17                 list.add(i);
18                 map.put(i, map.get(i) - 1);
19             }
20         }
21         return list.stream().mapToInt(i->i).toArray();
22     }
23 }

 

转载请注明出处:cnblogs.com/beiyeqingteng/

 

posted @ 2016-06-30 12:50  北叶青藤  阅读(216)  评论(0编辑  收藏  举报