update 0349.两个数组的交集 修改python代码,删除冗余的go代码

This commit is contained in:
Yuhao Ju
2022-11-24 21:26:09 +08:00
committed by GitHub
parent e86fea0ec3
commit ac58e6613b

View File

@ -147,32 +147,24 @@ Python3
```python ```python
class Solution: class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2)) # 两个数组先变成集合,求交集后还原为数组 val_dict = {}
ans = []
for num in nums1:
val_dict[num] = 1
for num in nums2:
if num in val_dict.keys() and val_dict[num] == 1:
ans.append(num)
val_dict[num] = 0
return ans
``` ```
Go Go
```go ```go
func intersection(nums1 []int, nums2 []int) []int { func intersection(nums1 []int, nums2 []int) []int {
m := make(map[int]int) set:=make(map[int]struct{},0) // 用map模拟set
for _, v := range nums1 {
m[v] = 1
}
var res []int
// 利用count>0实现重复值只拿一次放入返回结果中
for _, v := range nums2 {
if count, ok := m[v]; ok && count > 0 {
res = append(res, v)
m[v]--
}
}
return res
}
```
```golang
//优化版利用set减少count统计
func intersection(nums1 []int, nums2 []int) []int {
set:=make(map[int]struct{},0)
res:=make([]int,0) res:=make([]int,0)
for _,v:=range nums1{ for _,v:=range nums1{
if _,ok:=set[v];!ok{ if _,ok:=set[v];!ok{