# [1\. Two Sum](https://leetcode.com/problems/two-sum/) :::spoiler Solution - Brute-force ```cpp= class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if(nums[i] + nums[j] == target) return {i, j}; } } return {}; } }; ``` - T: $O(N^2)$ - S: $O(1)$ ::: :::spoiler Solution - HashMap ```cpp= class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); unordered_map<int, int> m; for (int i = 0; i < n; ++i) { int complement = target - nums[i]; if (m.count(complement)) return {i, m[complement]}; m[nums[i]] = i; } return {}; } }; ``` - T: $O(N)$ - S: $O(N)$ :::