给定两个数组,编写一个函数来计算它们的交集。

说明:

  • 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
  • 我们可以不考虑输出结果的顺序
 def binarySearch(nums, target):
'''
在数组中二分查找指定元素
:param nums:
:param target:
:return:
'''
left, right = 0, len(nums) - 1
while left <= right:
mid = left + (right - left) // 2
if nums[mid] == target:
return True
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1 return False def intersect1(num1, num2):
'''
求两个列表交集元素
:param num1:
:param num2:
:return:
'''
array1 = []
num1 = sorted(num1)
for i in num2:
if binarySearch(num1, i):
array1.append(i)
num1.remove(i)
array1 = sorted(array1) return array1 print("==========测试intersect()==========")
nums1 = [1, 3, 1, 2, 4, 2]
nums2 = [4, 8, 1, 2, 1, 3, 8, 2]
array1 = intersect1(nums1, nums2)
print("array1=", array1) def intersect2(nums1, nums2):
''' :param nums1:
:param nums2:
:return:
'''
array2 = []
temp_array2 = set(nums1) & set(nums2) # temp_array2 is a set
for i in temp_array2:
array2 += [i] * min(nums1.count(i), nums2.count(i))
return array2 print("+++++++++++测试intersect2()+++++++++++++")
array2 = intersect2(nums1, nums2)
print("array2=", array2) def intersect3(nums1, nums2):
''' :param nums1:
:param nums2:
:return:
'''
array3 = []
for i in nums1:
if i in nums2:
array3.append(i)
nums2.remove(i)
array3 = sorted(array3)
return array3 print("----------------测试intersect3()-----------")
array3 = intersect3(nums2, nums1)
print("array3=", array3)

输出:

==========测试intersect()==========
array1= [1, 1, 2, 2, 3, 4]
+++++++++++测试intersect2()+++++++++++++
array2= [1, 1, 2, 2, 3, 4]
----------------测试intersect3()-----------
array3= [1, 1, 2, 2, 3, 4]

leetcode350之实现求解两数组交集(包含重复元素)的更多相关文章

  1. JS判断数组是否包含某元素

    我在学习ES6数组拓展时,发现了新增了不少了有趣的数组方法,突然想好工作中判断数组是否包含某个元素是非常常见的操作,那么这篇文章顺便做个整理. 1.for循环结合break 可能很多人第一会想到for ...

  2. JavaScript判断数组是否包含指定元素的方法

    本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 /** ...

  3. JS 验证数组中是否包含重复元素

    验证JS中是否包含重复元素,有重复返回true:否则返回false 方案一. function isRepeat(data) { var hash = {}; for (var i in data) ...

  4. [LeetCode] 217. Contains Duplicate 包含重复元素

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  5. [LeetCode] 220. Contains Duplicate III 包含重复元素 III

    Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...

  6. [LeetCode] 219. Contains Duplicate II 包含重复元素 II

    Given an array of integers and an integer k, find out whether there are two distinct indices i and j ...

  7. 获取JS数组中所有重复元素

    //获取数组内所有重复元素,并以数组返回 //例:入参数组['1','2','4','7','1','2','2'] 返回数组:['1','2'] function GetRepeatFwxmmc(a ...

  8. 从n个元素中选择k个的所有组合(包含重复元素)

    LeetCode:Combinations这篇博客中给出了不包含重复元素求组合的5种解法.我们在这些解法的基础上修改以支持包含重复元素的情况.对于这种情况,首先肯定要对数组排序,以下不再强调 修改算法 ...

  9. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

随机推荐

  1. P3588 【[POI2015]PUS】(线段树优化建边)

    P3588 [[POI2015]PUS] 终于有个能让我一遍过的题了,写篇题解纪念一下 给定长度为n的序列和其中部分已知的数,还有m个大小关系:区间\([l,r]\)中,有k个给定的数比剩下的\(r- ...

  2. 手把手教你使用ADB卸载手机内置App软件

    [一.前言] 不知道你们有没有那么一段黑暗时期,刚买个手机,手机上内置一堆app,还卸载不掉,然后每天各种广告,手机一共1G的运行内存,那些流氓app还要再占走一些内存,真是让人欲哭无泪啊,后来我就学 ...

  3. dbcp数据源连接池

    一.数据源连接池 我们之前利用jdbc连接数据库,每次都要创建连接对象,销毁连接对象,如果并发访问量比较大,这样肯定比较辣 浪费数据库的效率,我们可以像之前mybatis中缓存查询到的数据一样,可以把 ...

  4. 真香!PySpark整合Apache Hudi实战

    1. 准备 Hudi支持Spark-2.x版本,你可以点击如下链接安装Spark,并使用pyspark启动 # pyspark export PYSPARK_PYTHON=$(which python ...

  5. 变分深度嵌入(Variational Deep Embedding, VaDE)

    变分深度嵌入(Variational Deep Embedding, VaDE) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 这篇博文主要是对论文“ ...

  6. LabVIEW(数据库连接)

    Driver={Microsoft Access Driver (*.mdb)}; Dbq=路径; Uid=Admin; Pwd=密码; 插入: INSERT INTO xs(学号,姓名,专业名,性别 ...

  7. Jmeter-Throughput Controller 吞吐量控制器

    比如在压测是时候,我设置了100个线程组,循环2次,那么我想根据吞吐量进行并发请求,这时候可以用到这个吞吐量控制器 PercentExecutions:按执行次数的百分比来计算执行次数,Through ...

  8. javaWeb删除一条及多条数据

    一.编写dao //删除根据ID@Delete("delete from product where id=#{id}")public void delete(Integer id ...

  9. STL库中神奇函数nth_element

    用法:nth_element(数组名,数组名+第k小元素,数组名+元素个数) 这个函数主要用来将数组元素中第k小的整数排出来并在数组中就位,随时调用. 例如: ]={,,,,},k ; cin> ...

  10. 下载Android代码

    1.由于墙,无法下载android源码,但是又不想利用清华源repo下载整个工程,只下载个别仓库 解决办法: 2.下载frameworks/base: git clone https://androi ...