美团测开(实习)一面,面试官给的算法题。
然而我没做出来,详见 败北两数之和(美团测开一面)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hash;
int n = nums.size();
for (int i = 0; i < n; i ++ )
{
if (hash.count(target - nums[i]))
{
if (i < hash[target] - nums[i]) //保证坐标从小到大输出(不必要)
return {i, hash[target - nums[i]]};
else
return {hash[target - nums[i]], i};
}
hash[nums[i]] = i;
}
return {};
}
};