1. Two Sum
问题描述
解决方案
时间复杂度O(n^2)
vector<int> twoSum(vector<int>& nums, int target)
{
int start=0,end=nums.size();
int var1,var2;
for(int i=0;i<end;++i)
for(int j=i+1;j<end;++j)
{
if((nums[i]+nums[j]==target))
{
var1=i;
var2=j;
break;
}
}
return vector<int>{var1,var2};
}
时间复杂度O(n)
vector<int> twoSum(vector<int>& nums, int target)
{
map<int,int> mi;
vector<int> ivec;
for(int i=0;i<=nums.size();++i)
{
auto iter=mi.find(target-nums[i]);
if(iter!=mi.end())
{
ivec.push_back(iter->second);
ivec.push_back(i);
return ivec ;
}
mi[nums[i]]=i;
}
return ivec;
}
作者:弦断
出处:http://www.cnblogs.com/ucas/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。