アルゴリズム1:1つの配列と1つのtargetを入力して、2つの数の和がtargetに等しい配列の下付きを解く
5567 ワード
この問題の最も簡単な方法は暴力的窮挙法であるが,窮挙法のアルゴリズム複雑度はo(n^2)であるため,ハッシュテーブルの特性を利用してアルゴリズム複雑度をo(n)に下げる方法を採用できる.
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
unordered_map<int,int> m;
vector<int> a;
for(int i = 0;i<nums.size()-1;i++)
{
m.insert(make_pair(nums[i],i));
}
for(int i = 0;i<nums.size()-1;i++)
{
int com = target-nums[i];
if((m.find(com)!=m.end())&&(m[com]!=i))
{
a.push_back(i);
a.push_back(m[com]);
return a;
}
else
{
continue;
}
}
return a;
}
};