时限超出错误

时间:2015-02-10 21:50:55

标签: c++ c++11

我在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:我知道使用哈希映射的方法可以加固它。我只是对错误感到困惑。感谢。

1 个答案:

答案 0 :(得分:2)

这意味着您的程序运行时间过长而终止。