gpt4 book ai didi

java - 每次迭代后删除二维数组的列和行

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:40 25 4
gpt4 key购买 nike

在一个项目中,我需要计算给定分数的最大值。之后,应删除这一特定行和相关列,以便在每一行中仅获得一个最大值。所以我的结果应该是这样的:

结果

enter image description here

这就是我到目前为止所拥有的。

    float max = Float.MIN_VALUE;
int remove_row = firstCluster.size()+1;
int remove_column = firstCluster.size()+1;
float[ ][ ] scores = new float[firstCluster.size()][secondCluster.size()];

for(int i=0; i<scores.length; i++){
if ( i == remove_row)
continue;

for(int j=0; j<scores[i].length; j++){
if ( j == remove_column){
continue;
}
else{
System.out.print(scores[i][j]);
if(scores[i][j] >= max)
{
max = Math.max(max, scores[i][j]);
remove_row = i;
remove_column = j;
System.out.print("Max: "+max);
}
}
}
System.out.println("##############################");
}

这个想法是跳过前一个最大值的列和行,但如果您处于 3 次迭代中,那么您只需跳过前一个迭代的列和行,而不是所有先前迭代的列和行。有没有更好的方法来解决这个问题?我不需要使用必要的二维数组

最佳答案

只是总结评论以构建正确的答案:

不要在单元格中添加零,而是维护两个 Set - usedRowsusedColumns - 跟踪您划掉的行和列,并在 if(scores[i][j] >= max) 之前使用额外的 if 语句来传送它们

记住在每次迭代开始时重置 max:

max = Float.MIN_VALUE

关于java - 每次迭代后删除二维数组的列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46724802/

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