-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtwoSum.cpp
More file actions
49 lines (48 loc) · 1.41 KB
/
twoSum.cpp
File metadata and controls
49 lines (48 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* 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.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [0,1] , Because nums[0] + nums[1] == 9, we return [0, 1]. */
//Brute-Force approach :
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> p;
//traversing array Using 2 diff iterators i and j
//a[i] will be compared and added with all the next elements one by one
//if its sum equals target then return a[i],a[j]
for(int i=0;i<nums.size();i++)
{
for(int j=i+1;j<nums.size();j++)
{
if(nums[i]+nums[j]==target)
{
p.push_back(i);
p.push_back(j);
break;
}
}
}
return p;
}
};
//Optimal Approach : Using HashSet
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ans;
map<int,int> mpp;
for(int i=0;i<nums.size();i++)
{
if(mpp.find(target-nums[i])!=mpp.end())
{
ans.push_back(mpp[target-nums[i]]);
ans.push_back(i);
return ans;
}
mpp[nums[i]]=i;
}
return ans;
}
};