提交 d5ae4735 编写于 作者: 每日一练社区's avatar 每日一练社区

add 1 exercises

上级 3e0874b6
#include <unordered_map>
#include <vector>
#include <iostream>
using namespace std;
class Solution
{
public:
......@@ -21,3 +24,17 @@ public:
return r;
}
};
int main()
{
Solution test;
int arr[] = {3, 2, 4};
vector<int> ret;
vector<int> vec(arr, arr + 4);
ret = test.twoSum(vec, 6);
for (auto i = ret.begin(); i != ret.end(); i++)
{
cout << *i << ' ';
}
return 0;
}
# 两数之和
以下错误的选项是?
## aop
### before
```cpp
#include <unordered_map>
#include <vector>
#include <iostream>
#include <map>
using namespace std;
```
### after
```cpp
int main()
{
Solution test;
int arr[] = {3,2,4};
vector<int> ret;
vector<int> vec(arr, arr+4);
ret = test.twoSum(vec, 6);
for (auto i = ret.begin(); i != ret.end(); i++)
{
cout << *i << ' ';
}
return 0;
}
```
## 答案
```cpp
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> vec;
map<int, int> dic;
for (int i = 0; i < nums.size(); ++i)
{
dic[nums[i]] = i;
}
for (int i = 0; i < nums.size(); ++i)
{
if (dic.count(target - nums[i]) != 0 && dic[target - nums[i]] != i)
{
vec.push_back(i);
vec.push_back(dic[target]);
break;
}
}
return vec;
}
};
```
## 选项
### A
```cpp
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> a;
map<int, int> map;
for (int i = 0; i < nums.size(); i++)
{
map[nums[i]] = i;
}
for (int j = 0; j < nums.size(); j++)
{
if (map.count(target - nums[j]) == 1 && map[target - nums[j]] != j)
{
a.push_back(j);
a.push_back(map[target - nums[j]]);
return a;
}
}
return a;
}
};
```
### B
```cpp
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> a;
map<int, int> map;
for (int i = 0; i < nums.size(); i++)
{
if (map.find(target - nums[i]) != map.end())
{
a.push_back(map[target - nums[i]]);
a.push_back(i);
return a;
}
else
{
map[nums[i]] = i;
}
}
return a;
}
};
```
### C
```cpp
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> a;
for (int i = 0; i < nums.size(); i++)
{
for (int j = i + 1; j < nums.size(); j++)
{
if (nums[i] + nums[j] == target)
{
a.push_back(i);
a.push_back(j);
return a;
}
}
}
}
};
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册