如何解决我的Java代码中的超时错误

时间:2019-01-26 03:44:20

标签: java error-handling

如何解决我的Java代码中的超时错误:

此代码首先查找元素的反向,然后找出实际值与反向值之间的差(如果该差可被k整除,然后增加计数器)

请找到以下代码:

//all header files are included

public class Solution {

    // Complete the beautifulDays function below.
    static int beautifulDays(int i, int j, int k) {
        int count=0;
for(int a=i;a<=j;a++)
{ 
    int p=a;
    int t=0,r=0;
    while(a>0)
    {
    r=a%10;
     t=t*10+r;
    a=a/10;
}
if((t-p)%k==0)
count++;
    }
    return count;
    }
    // all other code of input and calling methods

1 个答案:

答案 0 :(得分:1)

本节中有一个无限循环:

for (int a = i; a <= j; a++) { 
    int p = a;
    int t = 0, r = 0;
    while (a > 0) {
        r = a % 10;
        t = t * 10 + r;
        a = a / 10;    //OUCH!
    }
}

让我们对此进行分析。

  • 外部循环将循环变量a1增加到i
  • 内部循环减小相同的循环变量j,直到达到零为止。

猜猜哪一个赢了? (无法猜测吗?尝试使用铅笔和纸并手动执行这些循环。这是有用的练习。)

这意味着....外循环永远不会终止。

解决方案:在内循环中使用 different 循环变量。