```
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
```
```cpp=
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
}
};
```
```
10
/ | \
5 3 6
i j
[2, 7, 11, 15, ], target = 18
output: [1, 2]
[2, 2], target = 4
forloop i
forloop j
var sum = num[i] + num[j];
if (sum = ta)
n + (n - 1) + (n -2) ... + 1
(n+1)*n/2 = n^2
forloop i
map[target - num[i]] = i;
forloop j
if(!map[nums[j]].empty) {
int pairIndex = map[nums[j]];
return [j, pairIndex];
}
O(n) O(n)
```