# Leetcode - Two Sum - Solution

Given an array of integers `nums`

and an integer `target`

, return *indices of the two numbers such that they add up to target*.

You may assume that each input would have ** exactly one solution**, and you may not use the

*same*element twice.

You can return the answer in any order.

**Example 1:**

**Input:**

```
nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
```

**Example 2:**

**Input:**

```
nums = [3,2,4], target = 6
Output: [1,2]
```

**Example 3:**

**Input:**

```
nums = [3,3], target = 6
Output: [0,1]
```

**Constraints:**

`2 <= nums.length <= 10`

^{3}`-10`

^{9}<= nums[i] <= 10^{9}`-10`

^{9}<= target <= 10^{9}**Only one valid answer exists.**

## Solution in Python

```
from collections import defaultdict
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
d = defaultdict(list)
for index,value in enumerate(nums):
d[value].append(index)
for number in d:
second_number = target-number
if number*2==target:
if len(d[number])==2:
return d[number]
elif second_number in d :
return d[number]+d[second_number]
```