您的位置:首页 > 其它

Two Sum[leetcode]

2014-09-14 11:47 369 查看
好久没有写博客了,最近在重新刷leetcode,发现以前自己写的相当不错的代码,再加上自己最新的一些思考,故po出来

这一题解题思路有两个,一个是排序+O(n)搜索

另外一个是Hash

Hash方法的代码如下

vector<int> twoSum(vector<int> &numbers, int target) {
map<int, int> num_index;
vector<int> res;
for (int index = 0; index < numbers.size();index++)
{
if (num_index.find(target - numbers[index]) != num_index.end())
{
res.push_back(num_index[target - numbers[index]] + 1);
res.push_back(index + 1);
return res;
}
num_index[numbers[index]] = index;
}
return res;
}


注意:先找另一个数,再存入hash中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: