当每行的所有rowSum值均为正数时,以下代码可以正常工作,但如果所有rowSum的值均为负数(检查负数> 0并每次均失败),则以下代码将失败,并将答案设置为0。请提出一些处理建议这种负数的情况。 maxSum应该用什么初始化?

public static void findMaxRow(double[][] a){
double maxSum = 0;
int maxRow = 0;

for (int row = 0; row < a.length; row++){

    double rowSum = 0;

    for (int column = 0; column < a[row].length; column++){
        rowSum += a[row][column];
    }

    if (rowSum > maxSum){
        maxSum = rowSum;
        maxRow = row;
    }
}}}

最佳答案

您的初始值

double maxSum = 0;


如果实际最大值为负,则导致maxSum保持为0。

将初始值更改为Double.NEGATIVE_INFINITY

double maxSum = Double.NEGATIVE_INFINITY;

09-25 21:19