赞
踩
public:
vector<int> twoSum(vector<int>& nums, int target) {
int length = nums.size();
for (int i = 0; i < length - 1; i++)
for (int j = i + 1; j < length; j++)
{
if (nums[i] + nums[j] == target)
return { i,j };
}
return {};
}
};
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> m;
for(int i=0;i<nums.size();i++)
m[nums[i]]=i;
for(int i=0;i<nums.size();i++)
{
if(m.find(target-nums[i])!=m.end()&&m[target-nums[i]]!=i)
return {i,m[target-nums[i]]};
}
return {};
}
};
在第一次循环中,我们将每个元素的值和它的索引添加到表中。然后,在第二次循环中,我们将检查每个元素所对应的目标元素(target - nums[i])是否存在于表中。此方法相较于暴力破解法极大的节省了运行时间
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。