网络编程
位置:首页>> 网络编程>> Python编程>> Python实现求两个数组交集的方法示例

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

作者:linfeng886  发布时间:2023-08-03 18:57:58 

标签: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程序设计有所帮助。

来源:https://blog.csdn.net/linfeng886/article/details/82747703

0
投稿

猜你喜欢

  • aspx: <div id="selDiv" style=" z-index:100; visibili
  • 下面的这个函数实现的功能是列出某文件夹下的所有文件,以文件名字母排序,先数字后字母再到中文。<%   
  • 事件流浏览器中的事件流意味着页面上可有不仅一个,甚至多个元素响应同一个事件。而这一个或多个元素响应事件发生的先后顺序在各个浏览器(主要针对I
  • 早就想用一个系列的文章来写AJAX,让自己头到尾理一遍,更好的掌握基础知识(昨天的面试受打击了,基础知识很重要).要是写的好,也许也可以帮助
  • 备份还原数据库备份数据库企业管理器--或用SQL语句(完全备份):backup database 数据库 to
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容
  • 搞前端应该对语义化并不陌生,每天都在说语义化,可什么是语义化,语义化究竟能给我们带来什么好处?参加web标准交流会的时候我向各位同学提出了我
  • 调度和锁定在很多客户一起查询数据表时,如果使客户能最快地查询到数据就是调度和锁定做的工作了。在MySQL中,我们把select操作叫做读,把
  • laravel入门简介作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发。今天来记录下larave
  • Python函数的设计规范1、Python函数设计时具备耦合性和聚合性1)、耦合性:(1).尽可能通过参数接受输入,以及通过return产生
  • 先下载:http://signup.qq.com/js/a.js用 IntelliJ IDEA 格式化代码:var naa = true;O
  • 我很久前在YAHOO上扣的代码,兼容性很好,在Windows下的主流浏览器中可以正常运行。大家先不要急着下载代码,你随时都可以下,我们来分
  • 变量名1、组成:数字、字母、下划线2、变量名要有意义3、多个单词则用下划线,如user_id4、python的变量名不要驼峰显示字符串:1、
  • 我们这里所说的head区域,是指页页html代码的<head>和</head>之间的内容。在以前的文章中,主要介绍了
  • this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象。在实现对象的方法时,可以使用this指针来获得该对象自身的引用。和其他
  • 网页设计中的脏、乱、差,是我们在设计过程中常会遇到的问题。通常"脏"是由对色彩使用不当所产生的,而色彩使用不当产生的不好
  • 外面很多所谓sitemap生成代码都只生成目录文件地址,没生成动态的,我后来自己写了这个,是支持动态的,例子: 如你是文章网站,文章有200
  • 这个是捕获键盘事件输入状态的js代码,它可以判断你敲打了键盘的那个键,ctrl、shift,26个字母等等,返回具体键盘值。Javascri
  • 阅读上一篇:FrontPage XP设计教程3——网页的布局 FrontPage XP可以保证用户设计网页与不同的浏览器兼容,它所提供的样式
  • ASP 能快速执行你的 * 页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度
手机版 网络编程 asp之家 www.aspxhome.com