[LeetCode] 349. Intersection of Two Arrays

yunanยท2021๋…„ 2์›” 10์ผ
0
post-thumbnail

๐Ÿ”ฆ ๋ฌธ์ œ ๋งํฌ

๐Ÿ”Š ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ ์ฑ…์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ

๋‘ ๋ฐฐ์—ด์˜ ๊ต์ง‘ํ•ฉ์„ ๊ตฌํ•˜์„ธ์š”.

โœ๏ธ ํ’€์ด


  1. ๋ธŒ๋ฃจํŠธํฌ์Šคํ•˜๊ฒŒ ํ’€๋ฉฐ set๋ฅผ ์ถ”๊ฐ€๋กœ ์ด์šฉํ•œ ๋ฐฉ๋ฒ• O(n^2)
  2. ๋ฐฐ์—ดํ•˜๋‚˜๋ฅผ ์ •๋ ฌํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ์ด์ง„ํƒ์ƒ‰์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ• O(nlogn)
  3. ํˆฌ ํฌ์ธํ„ฐ๋กœ ์ฐพ๋Š” ๋ฐฉ๋ฒ• -> ์ •๋ ฌ + ํˆฌ ํฌ์ธํ„ฐ ํƒ์ƒ‰ O(nlogn)

๐Ÿ›  ์ฝ”๋“œ


  • 2๋ฒˆ ๋ฐฉ๋ฒ• ์ฝ”๋“œ
    • bisect๋กœ ์–ป์€ i2๋Š” ๋ฒ”์œ„ ๊ฒ€์‚ฌ๋ฅผ ๊ผญ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        result = set()
        nums2.sort()
        for n1 in nums1:
            i2 = bisect.bisect_left(nums2, n1)
            if len(nums2) > i2 and i2 >= 0 and nums2[i2] == n1:
                result.add(n1)
        return result

๐Ÿ“ ์ •๋ฆฌ


๐ŸŽˆ ์ฐธ๊ณ 


Book ๋งํฌ

profile
Go Go

0๊ฐœ์˜ ๋Œ“๊ธ€