This commit is contained in:
youngyangyang04
2020-03-01 23:45:22 +08:00
parent d6caa500a4
commit 0038609239
6 changed files with 352 additions and 0 deletions

70
problems/0000.TwoSum.md Normal file
View File

@ -0,0 +1,70 @@
## 题目地址
https://leetcode-cn.com/problems/two-sum/
## 思路
## 一般解法
代码:
```C++
```
## 优化解法
```C++
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
for (int i = 0; i < nums.size(); i ++) {
for (int j = i + 1; j < nums.size(); j++) {
if (nums[i] + nums[j] == target) {
return {i, j};
}
}
}
return {};
}
};
```
```
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::map <int,int> map;
for(int i = 0; i < nums.size(); i++) {
auto iter = map.find(target - nums[i]);
if(iter != map.end()) {
return {iter->second,i};
}
map[nums[i]] = i;
}
return {};
}
};
```
```
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
std::unordered_map <int,int> map;
for(int i = 0; i < nums.size(); i++) {
auto iter = map.find(target - nums[i]);
if(iter != map.end()) {
return {iter->second, i};
break;
}
map.emplace(nums[i], i);
}
return {};
}
};
```
## 代码
```C++
```