gpt4 book ai didi

java - 如何使用Java找到矩阵的鞍点?

转载 作者:行者123 更新时间:2023-12-01 18:37:23 24 4
gpt4 key购买 nike

如何使用 Java 找到矩阵的鞍点,该鞍点是行中最大的数字,同时也是列中最大的数字?

例如,使用这个矩阵:

| 7 2 |

| 1 3 |

| 5 8 |

鞍点是:7 和 8。

这是我编写的代码部分,用于查找行和列中的最大数字。

int NumRow = 3;    
int NumCol = 2;
int [] matrix = new int [NumRow][NumCol];

for ( int i = 0; i < NumRow; i++)
{
max = matrix[i][0];

for ( int j = 1; j < NumCol; j++)
{
if (matrix[i][j]> max)
{
max = matrix[i][j];
}
}
System.out.print(max+" ");

}
System.out.println("\n");

for ( int c = 0; c < NumCol; c++)
{
largest = matrix[c][0];

for (int r = 0; r < NumRow; r++){
if (matrix[r][c] > largest){
largest = matrix[r][c];
}
}
System.out.print(largest+" ");
}

输出为:

7 3 8

7 8

现在我想使用上面的定义找到鞍点。

最佳答案

来自wikipedia (强调我的):

A saddle point is an element of the matrix which is both the largest element in its column and the smallest element in its row.

您可以通过按行顺序遍历矩阵来确定它:

  • 创建一个数组来存储当前列最大值

  • 即时存储当前行最小值并将其存储在数组中

完成此操作后,您可以比较索引是否同时出现在两者中,以便您拥有一个既是最大列又是最小行的索引。

注意:根据维基百科的定义,您的示例矩阵没有任何鞍点。

关于java - 如何使用Java找到矩阵的鞍点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21338735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com