Leetcode 1 Solution

This article provides solution to leetcode question 1 (two-sum)

https://leetcode.com/problems/two-sum

Thinking Process

This is a very easy question. To check if any of the two numbers can be added up to target, we just need to check if target - num exists in the array for each num in the array.

To check if an element is in a data set, we’ll leverage hashmap.

Time & Space Complexity

Assuming N is the size of the array, the time & space compelxities are:

  • Time complexity: O(N)
  • Space complexity: O(N)

Solution

class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> p;
for (int i = 0; i < nums.size(); i++) p[nums[i]] = i;
for (int i = 0; i < nums.size(); i++) { if (p.find(target - nums[i]) == p.end()) continue;
int other = p[target - nums[i]];
if (i == other) continue;
return {i, other}; }
return {}; } };