【问题标题】:Row with maximum 1's TLE Problems具有最大 1 的 TLE 问题的行
【发布时间】:2021-07-12 19:11:18
【问题描述】:

如何解决下面这段代码中的 TLE 问题—— 在这段代码中运行时出现 TLE 错误我该如何解决这个问题请告诉解释

int t=sc.nextInt();
        while(t>0)
        {
            int n=sc.nextInt();
            int m=sc.nextInt();
            int [][]a=new int[n][m];
            
            int row=0;
            
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<m;j++)
                {
                    a[i][j]=sc.nextInt();
                }
            }
            int i=0;
            int j=m-1;
            while(i<n&&j>=0)
            {
                if(a[i][j]==1)
                {
                    row=i;  
                }
                else
                    i++;
            }
            System.out.print(row);
            t--;
        }
        
    }
}

【问题讨论】:

    标签: java arrays multidimensional-array


    【解决方案1】:

    发生这种情况是因为无论何时a[i][j]==1,您都不会前进到下一列((j-1)-th 列)。这就是为什么你的程序卡在那里的原因。它反复检查相同的值 (a[i][j]),即 1。
    需要进行以下修改才能得到正确的结果:

    if (a[i][j] == 1)
    {
        row = i;
        --j;
    }
    else 
        ++i;
    

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 2021-11-22
      • 2015-08-16
      • 1970-01-01
      • 2018-11-03
      • 2020-08-10
      • 2022-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多