题目:两个数组的交集
题目描述:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
分析:很明显要求不能重复,所以我们只需要记住一个数组中有什么,而不需要记住有多少个
代码:
func intersection(nums1 []int, nums2 []int) []int {
cur:=make(map[int]int)
for _,i:=range nums1{
cur[i]=1
}
res:=[]int{}
for _,i:=range nums2{
if cur[i]==1{
res=append(res,i)
cur[i]=0
}
}
return res
}
题目:两个数组的交集二
题目描述:
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
分析:这个题很明显就需要知道出现的次数,
代码:
func intersect(nums1 []int, nums2 []int) []int {
a:=make(map[int]int)
res:=[]int{}
for _,i:=range nums1{
a[i]++
}
for _,i:=range nums2{
if a[i]!=0{
res=append(res,i)
a[i]--
}
}
return res
}