알고리즘

[LeetCode] Two Sum

망나 2020. 8. 20. 22:02

Problem)

 

Solution)

먼저 제 첫번째 솔루션 입니다.

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for idx, value in enumerate(nums):
            if (target - value) in nums:
                if nums.index(target - value) != idx:
                    return [idx, nums.index(target - value)]

 

그보다 x20 빠른 솔루션 입니다.

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        d = {}
        for i, n in enumerate(nums):
            m = target - n
            if m in d:
                return [d[m], i]
            else:
                d[n] = i

 

시간과 메모리 효율성을 항상 고려하는 습관을 길러야겠다

'알고리즘' 카테고리의 다른 글

[Leetcode] Subarray Sum Equals K  (0) 2020.08.25
[ Leetcode ] Trapping Rain Water  (0) 2020.08.24
[Leetcode] Reverse String  (0) 2020.08.19
[Leetcode] Valid Palindrome  (0) 2020.08.18
[Leetcode] Container With Most Water  (0) 2020.06.04