【发布时间】:2011-11-29 14:16:39
【问题描述】:
我在某处看到并试图解决这个问题。
有一个 8 位像素的 64x64 网格,上面有一堆 1 像素宽的不同颜色的垂直和水平线。所有平行线之间至少有一个间距。问题是找出每组彩色线的交叉线数(例如,所有绿色线交叉都计入一个总和)。并找出哪一组线的交叉次数最少。此外,一种颜色的所有垂直线大小相同,相同颜色的所有水平线大小相同。
我有一些想法,但它们似乎都很低效。这将涉及遍历网格中的每个像素,如果遇到颜色确定它是垂直线还是水平线,然后一直沿线的方向移动,同时检查相邻边是否有不同的颜色。
我正在尝试确定是否首先计算每种颜色的水平线和垂直线的长度会加快处理速度。对于如何做到这一点,你们有什么绝妙的想法吗?
这里有两个例子。请注意,平行线之间总是有一个空格。
【问题讨论】:
-
不确定我是否理解,但在我看来,对于每种颜色,您需要水平线数乘以垂直线数。然后对其进行排序以查看哪种颜色的值最大?那么问题是如何通过检查图像像素来计算每种颜色的线数/类型?
-
我想要的是一条线被它自己以外的任何颜色交叉的次数。您对每条线执行此操作,然后对每种颜色的所有交叉点求和。此外,由于线可能在下方或不在下方,因此不明确,如果线在 T(或侧向 T)交叉口处相交,则不计算该交叉口。例如,第一张图片中绿色的交叉点总数为 7。
-
啊,好的。值得把它放在问题中,谢谢。