LeetCode之349. 兩個陣列的交集
阿新 • • 發佈:2019-01-03
運用的知識:集合 。 參考:自定義集合(Set)
題目描述:
給定兩個陣列,編寫一個函式來計算它們的交集。
示例 1:
輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2]
示例 2:
輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4]
說明:
- 輸出結果中的每個元素一定是唯一的。
- 我們可以不考慮輸出結果的順序。
解答:
import java.util.ArrayList; import java.util.TreeSet; class Solution { public int[] intersection(int[] nums1, int[] nums2) { //由於題目要求輸出結果唯一,所以想到用集合 TreeSet<Integer> set=new TreeSet<Integer>(); //將陣列1中的元素去重後,新增到set集合 for(int num:nums1) { set.add(num); } ArrayList<Integer> list=new ArrayList<Integer>(); //遍歷陣列2,將交集元素,放入list中 for(int num:nums2) { if(set.contains(num)) { list.add(num); set.remove(num); } } //將list集合,變成int陣列返回 int[] result=new int[list.size()]; for(int i=0;i<list.size();i++) { result[i]=list.get(i); } return result; } }