想象一下,上面的图片代表一个6 * 6的整数数组,其中0是黑色。 是否有快速算法将非0单元格拆分为矩形? 理想情况下,检查将包含在for循环中,而不创建任何其他数组。
for(x = 0; x < 6; x++)
for(y = 0; y < 6; y++)
if(cellIsBottomRightOfRect(x,y)) {
left = getLeft(x,y);
top = getTop(x,y);
printf("Rect: %d,%d %d,%d \n", left, top, x, y);
}
答案 0 :(得分:1)
使用递归方法如何在每次遇到与当前尝试分组的颜色不同的颜色时调用自身?
答案 1 :(得分:0)
您是否考虑过使用dynamic programming方法?
另外,我认为搜索算法(如A *)在这里可以很好地工作(即使它具有指数时间复杂度)。