前言:之前是计划先跟着July的博客看完《程序员编程艺术》,然后再去做leetcode的题目。现在改变计划,直接去做leetcode的题目,每天做一题。
本题跟之前写的博客【July程序员编程艺术】之寻找和为定值的两个或者多个数是同一个问题,算法思想就不再赘述,直接贴上在leetcode上写的程序:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int, int> hash_map;
vector<int> result;
for(int i=0;i<nums.size();i++)
{
hash_map[nums[i]]=i+1;
}
for(int i=0;i<nums.size();i++)
{
if(hash_map[target-nums[i]]>0)
{
int new_idx=hash_map[target-nums[i]];
if(new_idx!=i+1)
{
result.push_back(i+1);
result.push_back(new_idx);
break;
}
}
}
return result;
}
};