题目描述:给定两个数组,编写一个函数来计算它们的交集。
------我的小白代码及思路(Java解决):
- 首先双重for循环遍历两个数组找到它们其中共有的元素,将该元素放进结合set中;
- 求出set集合的长度a
- 开辟一个长度为a的数组nums3
- 遍历set集合,将集合中的元素一一赋值给nums3数组
- 最后返回数组nums3即可
------这种代码应该最好理解,没有高大上的东西,都是基础,浅显易懂,虽然在时间上和空间上都有点不划算,但是毕竟首先能解决问题是最重要的.
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<>();
for(int i = 0;i < nums1.length;i++){
for(int j = 0;j < nums2.length;j++){
if(nums1[i]==nums2[j])
set.add(nums1[i]);
}
}
int a = set.size();
int i = 0;
int []nums3 = new int[a];
for(int item:set){
nums3[i++] = item;
}
return nums3;
}
}
Python的解法如下:
- python中两个集合set取交集就是set1&set2
- 这里首先将数组nums1和nums2都转换为set
- 再利用 & 求交集
- 最后通过list转换为数组返回即可
class Solution(object):
def intersection(self, nums1, nums2):
set1 = set(nums1)
set2 = set(nums2)
return list(set1&set2)
我还是一个特别白的小白,正在努力学习中,大家有好的方法多多交流噢!最后插一张美图。