Python实现求两个数组交集的方法示例
作者:linfeng886 时间:2023-08-03 18:57:58
本文实例讲述了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
标签:Python,数组,交集


猜你喜欢
Python OpenCV实现识别信用卡号教程详解
2021-08-12 03:50:27

python实现维吉尼亚算法
2023-07-02 01:28:17

对django xadmin自定义菜单的实例详解
2023-06-19 22:48:21
Python中3种内建数据结构:列表、元组和字典
2022-12-20 03:46:04
AjaxUpLoad.js实现文件上传
2024-05-11 09:42:07
Dockerfile构建一个Python Flask 镜像
2021-11-12 10:04:01
仿微博字符限制效果实现代码
2024-04-28 09:51:18

python 画三维图像 曲面图和散点图的示例
2022-04-13 01:28:16
Python 数值区间处理_对interval 库的快速入门详解
2022-08-12 00:18:53
Python面向对象程序设计类的封装与继承用法示例
2022-12-22 08:34:33
Python3 利用face_recognition实现人脸识别的方法
2023-11-05 05:08:02

DW MX 2004新功能:加密FTP
2009-09-13 18:42:00

python模拟登录百度贴吧(百度贴吧登录)实例
2023-11-20 14:30:56

理解 javascript 中的函数表达式与函数声明
2024-04-23 09:08:26

SQLServer 连接 EXCEL
2009-07-09 19:00:00
Python自动化办公之定时发送邮件的实现
2021-07-14 01:50:32

使用Django的模版来配合字符串翻译工作
2023-11-17 06:03:47
Python实现的列表排序、反转操作示例
2023-06-19 11:14:27
IDEA导入Git项目的方法
2023-01-25 23:09:09

Python实现图像随机添加椒盐噪声和高斯噪声
2023-06-13 22:54:36
