Leetcode 349. Intersection of Two Arrays 解題報告 Python Java
阿新 • • 發佈:2019-02-19
1 解題思想
這道題就是說,求兩個陣列的交集,所以做法也很簡單:
使用雜湊Set存入第一個陣列的值
遍歷第二個陣列,如果第二個的數在Set中出現,那麼就是交集(與此同時,因為只能返回一個值,所以出現後還需要從Set中刪除哦)
2 原題
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.
3 AC解
// 有問題可以新浪微博@MebiuW
public class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashSet<Integer> set = new HashSet<Integer>();
for(int i=0;i<nums1.length;i++)
set.add(nums1[i]); //遍歷增加
List<Integer> resultList = new ArrayList<Integer>();
for (int i=0;i<nums2.length;i++)
if(set.contains(nums2[i])){
resultList.add(nums2[i]);
set.remove(nums2[i]); //記得刪除
}
int result[] = new int[resultList.size()];
for(int i=0;i<resultList.size();i++)
result[i]=resultList.get (i);
return result;
}
}
4 AC 解 Python版
感覺用Python好簡潔,喵
class Solution(object):
def intersection(self, nums1, nums2):
result = list()
for num in set(nums1) :
if num in nums2:
result.append(num)
return result
5 再度更新個一句話版的
python的列表生成器,剛剛忙著趕,沒用這個。。畢竟我對Python也不熟悉,只是知道有這個東西,喵
class Solution(object):
def intersection(self, nums1, nums2):
return [num for num in set(nums1) if num in nums2]