LeetCode之Intersection of Two Arrays
生活随笔
收集整理的這篇文章主要介紹了
LeetCode之Intersection of Two Arrays
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、題目
Given two arrays, write a function to compute their intersection.
Example:
Given?nums1?=?[1, 2, 2, 1],?nums2?=?[2, 2], return?[2].
Note:
- Each element in the result must be unique.
- The result can be in any order.
?
?
Subscribe?to see which companies asked this question.
?
2、代碼實現
public class Solution {public int[] intersection(int[] nums1, int[] nums2) {if (nums1 == null || nums2 == null) {return null;} Map<Integer, Integer> map = new HashMap<Integer, Integer>();List<Integer> list = new ArrayList<Integer>();for (int i = 0; i < nums1.length; ++i) {map.put(nums1[i], 1);}for (int i = 0; i < nums2.length; ++i) {if (map.get(nums2[i]) != null && map.get(nums2[i]) != 2) {list.add(nums2[i]);map.put(nums2[i], 2);}} int a[] = new int[list.size()];for(int i = 0, j = list.size(); i < j; i++){a[i] = list.get(i);}return a;}
} ?
3、總結
一開始寫的時候是這樣寫的
if (map.get(nums2[i]) != null) {list.add(nums2[i]);} 這樣寫的話,在第二個數組里面出現了多個交集元素,就會得到結果很多一樣的交集元素,很明顯,錯了, 以后寫的時候需要注意,保證數據的唯一性,做個開關,得到了就關閉,入股哦后面有相同元素出現的時候,門已經關了,就添加不進去了,保證數據的唯一性。
總結
以上是生活随笔為你收集整理的LeetCode之Intersection of Two Arrays的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode之Add Digits
- 下一篇: LeetCode之Move Zeroes