LeetCode --> Two Sum
来源:互联网 发布:java监听器的作用 编辑:程序博客网 时间:2024/06/16 02:08
Example:
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
答案:
#include "stdafx.h"#include <iostream>#include <vector>#include <unordered_map>using namespace std;//原题是满足 数组中两个元素和等于target条件,自己考虑的时候考虑利用两个for循环来做。。。好笨效率超级低啊。。。//参考大牛思考的方法,用target减去数组中元素值,得到差,然后在hash中寻找该差,找到则获取其value值(即:所对应的数组中索引值),并将当前减数的索引值保存到vector中并返回即可。//若未在hash中找到差,则将当前减数与减数对应的索引值保存在hash中。vector<int> twoSum(vector<int> &numbers, int target){ //Key is the number and value is its index in the vector. unordered_map<int, int> hash; vector<int> result; for (int i = 0; i < numbers.size(); i++) { int numberToFind = target - numbers[i]; //target - A = B; //if numberToFind is found in map, return them if (hash.find(numberToFind) != hash.end()) { //+1 because indices are NOT zero based result.push_back(hash[numberToFind] /*+ 1*/); //当前差 result.push_back(i /*+ 1*/); //当前减数 return result; } //number was not found. Put it in the map. hash[numbers[i]] = i; } return result;}int _tmain(int argc, _TCHAR* argv[]){ vector<int> iv;// iv.push_back(3);// iv.push_back(2);// iv.push_back(4); iv.push_back(11); iv.push_back(15); iv.push_back(2); iv.push_back(7); vector<int> res = twoSum(iv, 9); for (int i = 0; i < res.size(); ++i){ std::cout << res[i] << ' '; } std::cout << '\n'; return 0;}
0 0
- 【Leetcode】Two Sum (Sum)
- LeetCode: Two Sum
- LeetCode: Two Sum
- [Leetcode] Two Sum
- LeetCode : Two Sum
- Leetcode: Two Sum
- leetcode 46: Two Sum
- [LeetCode] Two Sum
- LeetCode 1 - Two Sum
- Leetcode : Two Sum
- 【leetcode】Two Sum
- [LeetCode]Two Sum
- leetcode Two Sum
- [Leetcode] Two Sum
- [leetcode] Two Sum
- LeetCode - Two Sum
- leetcode之Two Sum
- LeetCode | Two Sum
- 深入研究Servlet线程安全性问题
- 2016年总结2017年计划
- 【原】ORACLE安装时,先决条件检查失败
- Deep Learning 开发工具Theano安装配置
- Oracle数据库 -- 触发器
- LeetCode --> Two Sum
- Eclipse快捷键 10个最有用的快捷键
- Codeforces Round #395 (Div. 2) D. Timofey and rectangles(思路)
- LuceneInAction-多样化查询
- 小菜鸟开始自己的记录之路
- Java设计模型之:原型模式
- Linux内核-内存-分区页框分配器
- 使用EditText 代替textview实现末尾省略号
- 多服务器scp文件