Python 编码环路调谐Q2

Python 编码环路调谐Q2,python,python-3.x,loops,Python,Python 3.x,Loops,我无法通过这个问题的隐藏测试。有人能告诉我我的代码有什么问题吗 错误消息是: “测试7超出了执行时间限制:程序超出了执行时间限制。请确保对于任何可能的输入,它在几秒钟内完成执行。” 我的代码: def countSumOfTwoRepresentations2(n, l, r): c=0 for i in range(l,r+1): for j in range(l,i+1): if(i+j==n): c+=

我无法通过这个问题的隐藏测试。有人能告诉我我的代码有什么问题吗

错误消息是:

“测试7超出了执行时间限制:程序超出了执行时间限制。请确保对于任何可能的输入,它在几秒钟内完成执行。”

我的代码:

def countSumOfTwoRepresentations2(n, l, r):
    c=0
    for i in range(l,r+1):
        for j in range(l,i+1):
            if(i+j==n):
                c+=1
    return(c)

我想你的问题是:

给定整数n、l和r,找出将n表示为两个>整数a和B之和的方法的数量,使l≤ A.≤ B≤ r

在代码中添加2个for循环可能会增加代码的时间复杂度,因为这是一种幼稚的方法。您应该尝试以下方法:

def countSumOfTwoRepresentations(n,l,r):
    result = 0
    for a in range(1,r+1):
        b = n - a
        if(b >= l and b <= r and b >= a):
            result+=1
    return result
def countsumoftwore表示(n、l、r):
结果=0
对于范围(1,r+1)内的a:
b=n-a
如果(b>=l和b=a):
结果+=1
返回结果

在此存储库中,您可以找到Codefights Arcade解决方案

int countSumOfTwoRepresentations2(int n,int l,int r){
整数计数=0;

对于(int i=l;i你提供了什么信息?)你能提供这个问题的链接吗好的,谢谢,我是新来的,希望很快我会做所有应该做的事情
int countSumOfTwoRepresentations2(int n, int l, int r) {

    int count = 0;

    for(int i = l; i<=r; i++)
    {
      for(int j = i; j<=r&&n-j>=l; j++)
    {
     if(i+j == n)  count++;
    }  

    }

    return count;
}