Python实现求两个数组交集的方法示例

 更新时间:2019年02月23日 10:50:47   作者:linfeng886  
这篇文章主要介绍了Python实现求两个数组交集的方法,涉及Python数组遍历、排序、判断、追加等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现求两个数组交集的方法。分享给大家供大家参考,具体如下:

一、题目

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

例1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

例2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]

说明:

  • 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致
  • 我们可以不考虑输出结果的顺序

二、解法

首先把两个数组都排序,然后两个数组进行遍历比较,
当值相等时,两个数组都往后移动一位,并且相等的那个值加入到 result 数组中
当值不相等时,值小的数组往后移动一位(因为我们已经排序过了,如果是值大的数组往后移动一位,那么肯定还是比值小的要大)

代码如下:

nums1.sort()
nums2.sort()
result = []
i, j = 0, 0
while i<len(nums1) and j<len(nums2):
  if nums1[i]==nums2[j]:
    result.append(nums1[i])
    i += 1
    j += 1
  elif nums1[i]>nums2[j]:
    j += 1
  elif nums1[i]<nums2[j]:
    i += 1
return result

时间 52ms,击败了 93%

本机测试代码如下:

# -*- coding:utf-8 -*-
nums1 = [1,2,2,1]
nums2 = [2,2]
nums1.sort()
nums2.sort()
result = []
i, j = 0, 0
while i<len(nums1) and j<len(nums2):
  if nums1[i]==nums2[j]:
    result.append(nums1[i])
    i += 1
    j += 1
  elif nums1[i]>nums2[j]:
    j += 1
  elif nums1[i]<nums2[j]:
    i += 1
print(result)

运行结果:

[2, 2]

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数组操作技巧总结》、《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友

    使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友

    这篇文章主要介绍了使用python3调用wxpy模块,监控linux日志并定时发送消息给群组或好友,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 使用python-magic和wxPython实现识别文档类型

    使用python-magic和wxPython实现识别文档类型

    这篇文章主要介绍了如何使用python-magic模块和wxPython库创建一个简单的文件列表应用程序,该应用程序可以显示所选文件夹中文件的类型,需要的可以参考下
    2023-08-08
  • Python类的定义和使用详情

    Python类的定义和使用详情

    这篇文章主要介绍了Python类的定义与使用,类名只要是一个合法的标识符即可,但这仅仅满足的是 Python 的语法要求:如果从程序的可读性方面来看,Python 的类名必须是由一个或多个有意义的单词连缀而成的,下文基于这些基础内容展开介绍,需要的朋友可以参考一下
    2022-03-03
  • Python ord函数()案例详解

    Python ord函数()案例详解

    这篇文章主要介绍了Python ord函数()案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 浅谈Python协程

    浅谈Python协程

    这篇文章主要介绍了Python协程的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 使用Python批量下载ts格式视频

    使用Python批量下载ts格式视频

    这篇文章主要介绍了使用Python批量下载ts格式视频的相关资料,需要的朋友可以参考下
    2023-05-05
  • Python字符串处理之count()方法的使用

    Python字符串处理之count()方法的使用

    这篇文章主要介绍了Python字符串处理之count()方法的使用,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python实现简单求解给定整数的质因数算法示例

    Python实现简单求解给定整数的质因数算法示例

    这篇文章主要介绍了Python实现简单求解给定整数的质因数算法,结合实例形式分析了Python正整数分解质因数的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python实现快速计算24点游戏的示例代码

    Python实现快速计算24点游戏的示例代码

    这篇文章主要为大家详细介绍了Python如何实现快速计算24点游戏并获取表达式,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • 通过Python实现Payload分离免杀过程详解

    通过Python实现Payload分离免杀过程详解

    这篇文章主要介绍了通过Python实现Payload分离免杀过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论