题目描述:
给定两个数组,编写一个函数来计算它们的交集。
题目示例:
范例1:
输入: nums1 = [1,2,2,1],nums2 = [2,2]
输出:[2]
范例2:
输入: nums1 = [4,9,5],nums2 = [9,4,9,8,4]
输出:[9,4]
读题可知:
俩集合的交集。
思考:
1、平推用嵌套for循环找出交集—将判断出的数用set来收集。
2、考虑先用set类收集其中一个集合,目的使其无重复(set的特性无序且不重复)
代码(一):(运行时间和内存调用不太理想)运行时间:8ms 内存消耗:39.2 MB
public int[] intersection(int[] nums1, int[] nums2) {
HashSet mes = new HashSet();
for (int i = 0; i < nums1.length; i++) {
for (int j = 0; j < nums2.length; j++) {
if (nums1[i] == nums2[j]) {
mes.add(nums1[i]);
}
}
}
List list = new ArrayList(mes);
int[] result = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
result[i] = (int) list.get(i);
}
return result;
}
代码(二):运行时间:4 ms 内存消耗:41.1 MB
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashSet
for(int item:nums1)
{
set.add(item);
}
HashSet
for(int i:nums2)
{
if(set.contains(i))
{
intersection.add(i);
}
}
int result[]=new int[intersection.size()];
int index=0;
for(int j:intersection)
{
result[index]=j;
index++;
}
return result;
}
}