升序数组,求其中是否有满足二数之和为target的元素
利用哈希表:
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
unordered_map<int,int> table;
vector<int> ans;
for(int i=0;i<numbers.size();i++)
{
if(table.find(numbers[i])==table.end()) //not found
table[numbers[i]]=i;
if(table.find(target-numbers[i])!=table.end()) //another found
{
if(i!=table[target-numbers[i]])
{
ans.push_back(1+min(i,table[target-numbers[i]]));
ans.push_back(1+max(i,table[target-numbers[i]]));
}
}
}
return ans;
}
};