gpt4 book ai didi

java - 最大行中的最小元素

转载 作者:行者123 更新时间:2023-11-30 06:02:39 24 4
gpt4 key购买 nike

我在类里面遇到了这个问题,我被困住了。我做了很多研究,但无法修复我的代码。

我需要创建一个矩阵并找到最大值行中的最小值(我相信这个元素称为minimax)。我正在尝试使用一个简单的 3 x 3 矩阵。到目前为止我所拥有的:

    Scanner val = new Scanner(System.in);       
int matrizVal[][] = new int[3][3];

for (int a = 0; a < matrizVal.length; a++) {
for (int b = 0; b < matrizVal.length; b++) {
System.out.print("(" + a + ", " + b + "): ");
matrizVal[a][b] = val.nextInt();
}
}

int largest = matrizVal[0][0];
int largestrow = 0;
int arr[] = new int[2];

for (int row = 0; row < matrizVal.length; row++){
for (int col = 0; col < matrizVal.length; col++){
if (largest < matrizVal[row][col]){
largest = matrizVal[row][col];
largestrow = row;
}
}
}

为了找到所谓的极小极大元素,我决定为每个循环创建一个循环并获取除最大行之外的所有最大行值。

    for (int i : matrizVal[largestrow]){
if (i != largest){
System.out.print(i);
}
}

这就是我被困住的地方!我只是想“排序”这个整数并取第一个值,这就是极小极大值。我正在考虑创建一个大小为 [matrizVal.length - 1] 的数组,但不确定它是否会起作用。

我对这个主题做了很多研究,但似乎没有任何帮助。欢迎任何提示。

(我认为不是,但如果重复,我深表歉意)

最佳答案

根据您提供的代码,matrizVal[largestrow] 应该是矩阵中包含最高值元素的行。

鉴于您的任务是提取此数组中的最小值,因此有多种选择。

如果您想简单地提取最小值,一种简单的方法将与确定最大值类似,只是少一个维度。

例如:

int min = matrizVal[largestrow][0];
for (int i = 0; i < matrizVal.length; i++) {
if (matrizVal[largestrow][i] < min) {
min = matrizVal[largestrow][i];
}
}
// min will be the target value

或者,如果您想要对数组进行排序,以使数组的第一个元素始终是最小的,请首先确保您正在复制数组,以避免改变原始矩阵。然后随意使用您选择的任何排序算法。 Arrays.sort() 应该就足够了。

关于java - 最大行中的最小元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977600/

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