1.首先想到的方法就是两个for循环全部遍历,代码如下,可通过,但效率太低

 class Solution
{
public:
vector<int> twoSum(vector<int> nums, int target)
{
vector<int> res;
for (int i = ; i < nums.size(); i++)
{
for (int j = i + ; j < nums.size(); j++)
{
if (nums[j] == target - nums[i])
{
res.push_back(i);
res.push_back(j);
}
}
}
return res;
}
};

2.使用unordered_map,遍历vector中每个元素,并在hash表中通过find()查找目标元素,若找到则写入结果,否则将当前元素加入到hash表中。(每次调用find()函数是为了判断当前元素与其前面的元素之和是否为target值)。

 class Solution
{
public:
vector<int> twoSum(vector<int> nums, int target)
{
unordered_map<int,int> hash;
vector<int> res;
for (int i = ; i < nums.size(); i++)
{
int numTofind = target - nums[i]; if(hash.find(numTofind) != hash.end())
{
res.push_back(hash[numTofind]);
res.push_back(i);
}
else
{
hash[nums[i]] = i;
}
}
return res;
} };

最新文章

  1. 我与ADO.NET二三事
  2. [Word]中批量修改图片大小和缩放比例方法
  3. SQL AND &amp; OR 运算符
  4. 20145218 《Java程序设计》第三周学习总结
  5. 十天学会单片机Day4串行口通信
  6. linux直接启动到字符界面或从字符界面启动到图形化界面
  7. Codeforces #350
  8. linux服务器证书安装指引
  9. 12个Sublime Text应用技巧和诀窍
  10. Flexbox学习总结
  11. 即时通讯软件openfire+spark+smack
  12. App专项测试之弱网测试
  13. python模块:xml.dom.minidom
  14. Linux文件系统3--打开文件
  15. js篇之对象数据属性与存取器属性
  16. 一 JAVA整体概念以及安装部署
  17. C++函数类型
  18. 混合开发中ios兼容问题
  19. C++类间转换之dynamic_cast
  20. Ubuntu每次开机后提示:检测到系统程序出现问题的解决方法

热门文章

  1. PHP实现识别带emoji表情的字符串
  2. 天津市人民优步Uber司机奖励政策(9月14日~9月20日)
  3. C#新特性记录
  4. 低于0.01%的极致Crash率是怎么做到的?
  5. APP产品设计流程图
  6. OSG-阴影
  7. 180713-Spring之借助Redis设计访问计数器之扩展篇
  8. Linux命令应用大词典-第36章 密码和证书管理
  9. Django - day01 快速回忆ORM操作
  10. Unity Shader学习笔记 - 用UV动画实现沙滩上的泡沫