mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-26 10:43:31 +08:00
1.3 KiB
1.3 KiB
题目地址
https://leetcode-cn.com/problems/two-sum/
思路
一般解法
代码:
优化解法
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 {};
}
};
代码