mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-27 03:02:50 +08:00
71 lines
1.3 KiB
Markdown
71 lines
1.3 KiB
Markdown
## 题目地址
|
|
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++
|
|
|
|
```
|