[LeetCode] Two Sum

CHOI YUN HO·2021년 8월 26일
0

알고리즘 문제풀이

목록 보기
37/63

📃 문제 설명

Two Sum

[문제 출처 : LeetCode]

👨‍💻 해결 방법

배열의 값들 중에 어떤 두 수를 더해야 target값이 되는지 구해서 인덱스를 반환하는
아주아주 간단한 문제였다.
처음에는 그냥 단순히 이중 for문을 이용하여 다 더해서 비교를 하려했는데
문제가 너무 쉬워서 그런지 오히려 다른 방법은 없을까 고민해보게 되었다.

hashmap을 사용해서 풀었다.
배열의 값을 key로 하고 인덱스를 value로 하는 hashmap을 만들고,
target - 배열[i]이 hashmap에 있으면 [value,i]를 return !

처음 생각한 이중 for문보다 시간복잡도가 배로 좋아졌다.

👨‍💻 소스 코드

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        temp = {nums[0]: 0}

        for i in range(1, len(nums)):
            if target - nums[i] in temp:
                return [temp[target - nums[i]], i]
            else:
                temp[nums[i]] = i
profile
가재같은 사람

0개의 댓글