[竞争规划]:如何优化这种强力方法?

时间:2017-02-27 12:53:41

标签: c++ time-complexity

我被给予了几行的长度,我需要找到其中有多少会形成一个三角形

输入就像这样

7 
1 4 13 2 25 6 11

其中7是否。行和以下行包含所有行的长度。

这就是我的代码在其核心

的样子
    for(int i=0;i<n-2;i++){ //n is the total no. of lines given initially
        for(int j=i+1;j<n-1;j++){
            for(int k=j+1;k<n;k++){
                if(l[i]+l[j]>l[k]){
                    noOfTriangles++;
                }else{
                    break;
                }   
            }
        }
    }

即使代码按预期工作,现在需要n ^ 3的时间,这超过了某些输入的时间限制。无论如何,我可以优化它?

编辑:我忘了提到我在实现嵌套for循环之前首先对数组进行了排序。

0 个答案:

没有答案