• leetcode_350. 两个数组的交集 II


    350. 两个数组的交集 II
    给定两个数组,编写一个函数来计算它们的交集。
    
     
    
    示例 1:
    
    输入:nums1 = [1,2,2,1], nums2 = [2,2]
    输出:[2,2]
    示例 2:
    
    输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    输出:[4,9]
     
    
    说明:
    
    输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
    我们可以不考虑输出结果的顺序。
    进阶:
    
    如果给定的数组已经排好序呢?你将如何优化你的算法?
    如果 nums1 的大小比 nums2 小很多,哪种方法更优?
    如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
    
    class Solution:
        def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
            nums1.sort()
            nums2.sort()
            ls=[]
            p1=p2=0
            while(p1<len(nums1) and p2<len(nums2)):
                if nums1[p1]==nums2[p2]:
                    ls.append(nums1[p1])
                    p1+=1
                    p2+=1
                elif nums1[p1]<nums2[p2]:
                    p1+=1
                else:
                    p2+=1
            return ls
    
    class Solution:
        def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
            ls=[]
            nums1.sort()
            nums2.sort()
            p1=p2=0
            while(p1<len(nums1) and p2<len(nums2)):
                if nums1[p1]==nums2[p2]:
                    ls.append(nums1[p1])
                    p1+=1
                    p2+=1
                elif nums1[p1]<nums2[p2]:
                    p1+=1
                else:
                    p2+=1
           
           
           
           
           
            return ls
    
  • 相关阅读:
    OC中的block
    tips: NSCopying和NSMutableCopying
    tips: @property 、@synthesize和@dynamic
    静态库SDK引发的符号冲突
    复杂业务app中跨业务页面调用方案
    AOP
    【HTML 初学】3、HTML标题
    【HTML 初学】2、HTML属性
    【HTML 初学】1、HTML元素
    【Java编程思想】二、一切都是对象
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14119355.html
Copyright © 2020-2023  润新知