# Target Two Sum

## Course launching August 2020

**Follow me on YouTube** for free coding interview videos.

Users who sign up for the email list will receive an exclusive 75% discount at launch.

**Given an array of unsorted unique integers, write a function getTargetIndexes that returns an array of arrays of the index pairs for each of the two numbers that add up to the target.**

- Prioritize run time complexity over memory
- An item can not match with itself
- The same pair of indexes should only be included once
- The order of the returned array and its items does not matter

```
// Input
const array = [4, -3, 80, 2, 9, 13, 5, 8];
const target = 10;
// Output: getTargetIndexes(array, target);
[[1, 5], [3, 7]];
```

### Validate My Answer

You can do this brute force, but it will be the worse solution at

*O(n*time.^{2})Keep the constraints in mind. You don't have to worry about duplicate values in the array.

By adding another data structure, you can do this in

*O(n)*time and*O(n)*space.Remember you can't add a number to itself (ie. the solution is the same index twice). However, you can add a number to zero. Ex. [4,8,0], target 8. You can't say

`[0,0]`

for`4+4`

, but you can say`[1,2]`

for`8+0`

.Does your solution handle negative numbers?

Does your solution handle an empty array input?

Make sure your solution doesn't include repeated indexes. For example, if you already have

`[1,4]`

in your results, you shouldn't also have`[4,1]`

. However, having either one of those is acceptable based on the constraints.