zoukankan      html  css  js  c++  java
  • Leetcode with Python -> Sort

    349. Intersection of Two Arrays

    Given two arrays, write a function to compute their intersection.

    Example:
    Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2].

    Note:

    • Each element in the result must be unique.
    • The result can be in any order.
    class Solution(object):
        def intersection(self, nums1, nums2):
            """
            :type nums1: List[int]
            :type nums2: List[int]
            :rtype: List[int]
            """
            return list(set(nums1)&set(nums2))
        # for two set, set1&set2 makes a new set containing the intersection of these two sets,likewise, | makes the union set, and ^ makes the union set with the exception of the intersection elements
        # this solution is clear but not fast
    

     350. Intersection of Two Arrays II

    Given two arrays, write a function to compute their intersection.

    Example:
    Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2, 2].

    Note:

    • Each element in the result should appear as many times as it shows in both arrays.
    • The result can be in any order.

    Follow up:

    • What if the given array is already sorted? How would you optimize your algorithm?
    • What if nums1's size is small compared to nums2's size? Which algorithm is better?
    • What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?
    class Solution(object):
        def intersect(self, nums1, nums2):
            """
            :type nums1: List[int]
            :type nums2: List[int]
            :rtype: List[int]
            """
            from collections import Counter
            c1=Counter(nums1)
            c2=Counter(nums2)
            return sum([[num]*min(c1[num],c2[num]) for num in c1&c2],[])
        
        # sum([[1,2],[3,4]],[]) makes [1,2,3,4], why???
        # Counter(some_list) makes a diction, whose key is the elements of the list and the value is the time it appears in the list
        # for two counter, c1&c2 makes the intersection of their keys and the value is always 1
    
  • 相关阅读:
    【2020Python修炼记】网络编程(三)socket编程之粘包
    2020python作业——scoket编程(一)
    月考二
    【2020Python修炼记】网络编程(二)socket编程之socket 的介绍+TCP/UDP
    Gym100889L
    poj3233
    upper_bound
    lower_bound
    Gym-102141E
    P1020 导弹拦截
  • 原文地址:https://www.cnblogs.com/DianeSoHungry/p/8315898.html
Copyright © 2011-2022 走看看