Two Sum
배열의 값들 중에 어떤 두 수를 더해야 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