350. 两个数组的交集 II

2021-02-15 16:24

阅读:354

标签:src   turn   ima   inf   数组的交集   alt   int   solution   class   

技术图片

 

 思路详见注释。

 1 class Solution(object):
 2     def intersect(self, nums1, nums2):
 3         """
 4         :type nums1: List[int]
 5         :type nums2: List[int]
 6         :rtype: List[int]
 7         """
 8         # 保证s1短
 9         if len(nums1) > len(nums2):
10             nums1, nums2 = nums2, nums1
11 
12         # 返回值
13         res = [int] * len(nums1)
14         # res下标
15         index = 0
16 
17         # 遍历s1
18         i = 0
19         while i  len(nums1):
20             # 数字在s2中,不在res中,则添加到res中,下标加1,指针后移
21             if nums1[i] in nums2 and nums1[i] not in res:
22                 # 该数字分别在两个list中出现的次数,取较小者
23                 num = min(nums1.count(nums1[i]), nums2.count(nums1[i]))
24                 # 在res中重复加入num个该数字
25                 for j in range(num):
26                     res[index] = nums1[i]
27                     index += 1
28                 i += 1
29             # 指针后移
30             else:
31                 i += 1
32         return res[0:index]
33 
34 if __name__ == __main__:
35     solution = Solution()
36     print(solution.intersect(nums1=[4, 9, 5], nums2=[9, 4, 9, 8, 4]))
37     print(solution.intersect(nums1=[1, 2, 2, 1], nums2=[2, 2]))

 

350. 两个数组的交集 II

标签:src   turn   ima   inf   数组的交集   alt   int   solution   class   

原文地址:https://www.cnblogs.com/panweiwei/p/12712627.html


评论


亲,登录后才可以留言!