diff --git a/problems/0349.两个数组的交集.md b/problems/0349.两个数组的交集.md index bd83fae9..2e98ef6f 100644 --- a/problems/0349.两个数组的交集.md +++ b/problems/0349.两个数组的交集.md @@ -147,32 +147,24 @@ Python3: ```python class Solution: 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 func intersection(nums1 []int, nums2 []int) []int { - m := make(map[int]int) - 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) + set:=make(map[int]struct{},0) // 用map模拟set res:=make([]int,0) for _,v:=range nums1{ if _,ok:=set[v];!ok{