将二维数组划分为不相等的矩形和正方形

时间:2014-11-15 09:47:14

标签: java arrays math

我需要将2d数组分成像这个图像中的块(我不能发布图像)

如果主对角线= 1。然后我检查下一个广场。如果我有矩形,我只检查点(0,0)和(1,1)。 阵列可分为4 * 4,3 * 3,2 * 2的正方形。 我认为一定是这样的

for (int i=start;i<start+len_of_square;i++)
    for (int j=start;j<start+len_of_square;j++)
        {
            //do checking
        }

但只有当数组可以分成相等的方块时它才会起作用。 是否有一些算法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

我对堆栈溢出的规则和规定了解不多。检查以下算法是否符合您的要求。而不是循环遍历所有单元格并使用&#34逐个消除;如果&#34;使用以下方式。它会快得多,因为循环只运行完整数组/分区时间的长度

for(int i=0;i<length of full array/division  && i<length of full array;i++)
{
      for(int j=0;j<length of full array/division && j<length of full array;j++)
      {
           //do operation for array[divison*i][division*j] and  array[divison*i+1][division*j+1]
      }
}

它将根据图片检查除法是否为4(0,0),(1,1),(0,4),(1,5),(0,8),(1,9), (4,0)(5,1)....命令