在1d阵列中拾取Common 1d序列?

时间:2012-05-16 05:35:49

标签: c++

如何从2d阵列中选择最好的均匀1d阵列?

我有两个2d数组:11 x 10 示例:

  4 8 12 12 12 14 16 18 4 1 0 
  5 7 11 12 13 11 15 18 3 2 1
  8 3 12 14 18 19 20 21 8 5 4 ,
  8 2 11 12 17 17 19 20 7 4 3 ,
  4 7 11 11 11 15 17 19 5 1 1 ,
  3 8 11 13 11 15 14 17 4 1 0 ,
  4 7 12 13 13 14 16 19 3 1 1 ,
  5 9 11 12 13 15 17 19 5 0 1 ,
  9 7 25 22 24 18 23 17 3 3 3 ,
  4 8 13 13 13 15 17 17 5 2 0 ,

这里我们有2d大小为11x10的数组 - 需要分析并且必须找出常见的1d数组。

找到最佳结算数及其差异 - 并继续对数组中的所有相应列进行操作。

下面的答案应该是 - 找到相应的非常列并与下一行列进行比较 - 如果它在下面有一些差异(5),则两行的两列相同并处理同一行的下一列。 .process直到找到它至少附近有5个匹配的1行

4 8 11 12 13 13 15 18 4 1 0 

1 个答案:

答案 0 :(得分:0)

为什么不做这样的事情

int[] count(int[][] array)
int result[11];

for(int x = o; x<= 11;x++)
{
int temp[10];
 for(int y = o; y<= 10;y++)
{
 temp[y] = array[y][x];
}
result[x] = getHighest(temp);
}
return result;
}

int getHighest(int[] array)
{
 int size = array.length;
 int[size][1] temp; 

 for(int x; x<= size;x++)
{
 int z = array[x];
 temp[z][0]++;

}
int highest = -1;
for(int z; z<= size;z++)
{
 int z = array[x];
 int h = temp[z][0];
 if(h > highest)
 {
  highest = h;
 }
}
return highest;
}

像这样的东西,但是我的C ++有点生疏,如果有任何错误就很抱歉。