#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <mutex>
#include <thread>
using namespace std;
// vector<int> twoSum(const vector<int>& vec, int target)
// {
// int l = 0;
// int r = vec.size() - 1;
// int sum;
// while(l < r)
// {
// sum = vec[l] + vec[r];
// if(sum == target)
// {
// break;
// }
// if(sum < target)
// {
// ++l;
// }
// else
// {
// --r;
// }
// }
// cout <<l << " " <<r<<endl;
// return vector<int>{l,r};
// }
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> res;
unordered_map<int,int> mp;
for(int i = 0; i < nums.size(); ++i)
{
mp[nums[i]] = i;
}
for(int i = 0; i < nums.size(); ++i)
{
int index = target - nums[i];
if(mp.count(index) && mp[index] != i)
{
res.push_back(i);
res.push_back(mp[index]);
cout <<i << " " <<mp[index]<<endl;
break;
}
}
return res;
}
int main()
{
vector<int> vec = {3,2,4};
int target = 6;
auto solve = twoSum(vec, target);
getchar();
return 0;
}
targetNum
最新推荐文章于 2023-10-08 21:21:35 发布