Java 同时比较二维阵列的层

Java 同时比较二维阵列的层,java,arrays,Java,Arrays,我正在为Java中的一个算法类做一个项目,我被这个我无法解决的问题困扰着 我有一个大小为[m][n]的二维数组,其中m和n可以根据输入而波动。我想把这些值压缩成一个一维数组,这个数组的值是二维数组中任何垂直列中最小的。下面是该阵列的两个示例 示例1输入: 3.0, 4.0, 2.0, 3.0, 4.0, 2.0, 1.0, 2.0, 0.0, 3.0, 3.0 0.0, 1.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 3.0, 2.0, 2.0 示例1输出: 0.0,

我正在为Java中的一个算法类做一个项目,我被这个我无法解决的问题困扰着

我有一个大小为[m][n]的二维数组,其中m和n可以根据输入而波动。我想把这些值压缩成一个一维数组,这个数组的值是二维数组中任何垂直列中最小的。下面是该阵列的两个示例

示例1输入:

3.0, 4.0, 2.0, 3.0, 4.0, 2.0, 1.0, 2.0, 0.0, 3.0, 3.0 
0.0, 1.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 3.0, 2.0, 2.0 
示例1输出:

0.0, 1.0, 1.0, 2.0, 3.0, 1.0, 1.0, 2.0, 0.0, 2.0, 2.0
示例2输入:

0.0, 1.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 3.0, 2.0, 2.0 
2.0, 3.0, 1.0, 0.0, 1.0, 3.0, 2.0, 3.0, 3.0, 4.0, 2.0 
1.0, 2.0, 2.0, 3.0, 4.0, 0.0, 1.0, 2.0, 2.0, 1.0, 3.0 
1.0, 2.0, 0.0, 1.0, 2.0, 2.0, 1.0, 2.0, 2.0, 3.0, 1.0 
2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 0.0, 1.0, 1.0, 2.0, 2.0 
示例2输出:

0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0
这是我想排序的逻辑,是这样的:

loop through the 2-d array
at every vertical index, compare all values within the vertical index,
output lowest value to single dimensional array

我相信这是一个有点简单的问题,但我无法思考如何正确地做到这一点。感谢您提供的任何建议

想象一下,对于输入[m][n]m将是您的行,n将是您的列,因此您必须按列遍历以获得该列中的最低值:

int[] output = new int[n];
for(i = 0; i < n; i++)
   output[n] = input[0][n];
for(i = 0; i < n; i++)
   for(k = 0; k < m; k++)
      if(output[n] > input[m][n])
          output[n] = input[m][n];  
int[]输出=新的int[n];
对于(i=0;i输入[m][n])
输出[n]=输入[m][n];

想象一下,对于输入[m][n]m将是您的行,n将是您的列,因此您必须按列遍历以获得该列中的最低值:

int[] output = new int[n];
for(i = 0; i < n; i++)
   output[n] = input[0][n];
for(i = 0; i < n; i++)
   for(k = 0; k < m; k++)
      if(output[n] > input[m][n])
          output[n] = input[m][n];  
int[]输出=新的int[n];
对于(i=0;i输入[m][n])
输出[n]=输入[m][n];

如果(输出[n]>输入[m][n])
此条件在此处始终失败,
输出[n]
始终为零且值小于二维数组中的值。我认为对于(I=0;I
输出[n]=输入[0][n]我认为它的
输出[n]=输入[n][0]否它应该是输出[n]=输入[0][n],因为这是输出的初始化步骤,所以您必须获得输入第一行的每一列,请记住在数组矩阵输入[m][n]中,m是您的行,n是您的列Y,您是对的。我对
input[m][n]
input[n][m]
如果(output[n]>input[m][n])
这个条件在这里总是失败,
output[n]
总是为零并且小于二维数组中的值。我认为对于(I=0;I
输出[n]=输入[0][n]我认为它的
输出[n]=输入[n][0]否它应该是输出[n]=输入[0][n],因为这是输出的初始化步骤,所以您必须获得输入第一行的每一列,请记住在数组矩阵输入[m][n]中,m是您的行,n是您的列Y,您是对的。我被
input[m][n]
input[n][m]