관리 메뉴

솜씨좋은장씨

[leetCode] 350. Intersection of Two Arrays II (Python) 본문

Programming/코딩 1일 1문제

[leetCode] 350. Intersection of Two Arrays II (Python)

솜씨좋은장씨 2020. 10. 5. 00:01
728x90
반응형

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

 

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2,2]

Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [4,9]

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?

Solution

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        result = []
        
        cnt = dict(Counter(nums1))
        
        for num in nums2:
            if num in cnt and cnt[num] != 0:
                result.append(num)        
                cnt[num] = cnt[num] - 1
        
        return result

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments