我在leetcode上运行代码,问题是:
给定一个整数数组,找到两个数字,使它们相加到一个特定的目标数。
函数twoSum应返回两个数字的索引,以便它们相加到目标,其中index1必须小于index2。请注意,您返回的答案(index1和index2)不是从零开始的。
您可以假设每个输入都只有一个解决方案。
输入:数字= {2,7,11,15},目标= 9 输出:index1 = 1,index2 = 2
我的回答很简单:
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
vector<int> result;
for(int i=0;i<numbers.size()-1;i++){
for(int j=1+i;j<numbers.size();j++){
if (numbers[i]+numbers[j]==target)
{ result.push_back(i+1);
result.push_back(j+1);
return result;}
}
}
return result;
}
};
通过使用双循环,其复杂性应为(O ** 2)。但是,我收到了“超出运行时间限制”这样的错误。有什么问题吗?
PS:我知道使用哈希映射的方法可以加固它。我只是对错误感到困惑。感谢。
答案 0 :(得分:2)
这意味着您的程序运行时间过长而终止。