首页 > 其他分享 >leedcode-两个数组的交集

leedcode-两个数组的交集

时间:2024-04-11 14:34:43浏览次数:25  
标签:hash 交集 res List leedcode int 数组 nums1 nums2

自己写的:

from typing import List  # 导入List类型,用于函数参数和返回类型的注解

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        # 初始化一个空列表,用于存储两个列表的交集
        mylist = []

        # 遍历nums1中的每个元素
        for i in nums1:
            # 检查当前元素是否也存在于nums2中
            if i in nums2:
                # 如果存在,则将当前元素添加到mylist中
                mylist.append(i)
        
        # 使用集合去除mylist中的重复元素,并转换回列表
        res = list(set(mylist))
        
        # 返回交集列表
        return res

哈希表实现:

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:

        # 有一个数组为空,则交集为空
        if not nums1 or not nums2:
            return []

        # 初始化哈希表
        hash = {}
        # 初始化结果列表,存放最后结果
        res = []

        # 哈希表 key 为 nums1 数组中的数,value 为值
        for i in nums1:
            if not hash.get(i):
                hash[i] = 1
        # 遍历 nums,如果 nums2 数组中的数出现在哈希表中,对应数放入结果列表,对应 value 值置-为0
        for j in nums2:
            if hash.get(j):
                res.append(j)
                hash[j] = 0

        return res

 

标签:hash,交集,res,List,leedcode,int,数组,nums1,nums2
From: https://www.cnblogs.com/yyyjw/p/18129106

相关文章

  • LeetCode 2439. 最小化数组中的最大值
    给你一个下标从 0 开始的数组 nums ,它含有 n 个非负整数。每一步操作中,你需要:选择一个满足 1<=i<n 的整数 i ,且 nums[i]>0 。将 nums[i] 减1。将 nums[i-1] 加1。你可以对数组执行 任意 次上述操作,请你返回可以得到的 nums 数组中 最大值......
  • 利用数组储存表格数据
    原理以及普通数组储存表格信息        在介绍数组的时候说过,数组能够用来储存任何同类型的数据,这里的意思就表明只要是同一个类型的数组据就可以储存到一个数组中。那么在表格中同一行的数据是否可以储存到同一个数组中呢?答案自然是可以,但是与之对应的疑惑便也产生了,......
  • 嵌入式之指针、数组、函数篇(三)
    三、指针、数组、函数1.什么是指针?指针其实也是个变量,只不过这个变量里面存储的是内存地址。2.什么是指针的类型?举个例子:int*a;指针类型为int*char*c;指针类型为char*3.什么是指针所指向类型举个例子:int*a;指针指向类型为intchar*c;指针指向类型为char注......
  • 数组
    数组数组的定义数组声明创建packagecom.xqstudy.array;publicclassArrayDemo01{//变量的类型变了的名字=变量的值;//数组的类型publicstaticvoidmain(String[]args){int[]nums;//1.声明一个数组nums=newint[10];//2.......
  • 最优算法100例之38-构建乘积数组
    专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用......
  • 最大连续子数组和(最大子段和)
    1.题目要求:最大连续子数组和(最大子段和)问题背景:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为:Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n例如,当(a[1],a[2]......
  • leedcode-反转字符串中的元音字母
    自己写的,双指针,一次通过classSolution:defreverseVowels(self,s:str)->str:#将输入的字符串转换为列表s_list=list(s)#定义元音字母列表vowels=['a','e','i','o','u','A&......
  • 4.数组
    一、为什么需要数组由于变量只能存放一个值,当要一回存放多个值时会很麻烦,所以C++的创造者增加了数组这个概念,能够同时存放多个值。二、一维数组1.一维数组的定义//数组定义//格式:数据类型数组名[数组长度]={元1,2,元素3};inta1[5];floata2[15];doublea3[100];cha......
  • C++ 获取数组大小、多维数组操作详解
    获取数组的大小要获取数组的大小,可以使用sizeof()运算符:示例intmyNumbers[5]={10,20,30,40,50};cout<<sizeof(myNumbers);结果:20为什么结果显示为20而不是5,当数组包含5个元素时?这是因为sizeof()运算符返回类型的大小(以字节为单位)。要找出数组有多少......
  • 最大连续子数组和(最大子段和)
    作业信息 沈阳航空航天大学计算机学院2024软件工程作业课程目标 熟悉一个“高质量”软件的开发过程作业目标 单元测试练习请在作业最后部分填写如下表格记录本次工作详细信息项目 记录结果日期 2024.4.10开始时间 2024.4.9结束时间 2024.4.10结束时间 2024.4.10编码行数 ......