LeetCode349.Intersection of Two Arrays(兩個陣列的交集)
阿新 • • 發佈:2018-12-25
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
給定兩個陣列,寫一個函式來計算它們的交集。
例子:
給定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].
注意:
- 輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。
- 我們可以不考慮輸出結果的順序。
public class Solution { public int[] intersection(int[] nums1, int[] nums2) { TreeSet<Integer> set = new TreeSet<>(); for (int num : nums1) set.add(num); ArrayList<Integer> list = new ArrayList<>(); for (int num : nums2) { if (set.contains(num)) { list.add(num); set.remove(num); } } int[] res = new int[list.size()]; for (int i = 0; i < list.size(); i++) res[i] = list.get(i); return res; } }
測試程式碼
public class Test {
public static void main(String[] args) {
int[] a = { 1, 2, 2, 1 };
int[] b = { 2, 2 };
Solution solution = new Solution();
System.out.println(Arrays.toString(solution.intersection(a, b)));
}
}
執行結果