我有一个二维的对象数组,如果对象的clicked属性设置为true,那么应该将其视为“1”,否则为“0”。这些是选定的块。我需要检查所选框是否形成一个矩形最好的办法是什么?
最佳答案
高级:
记录最外层的1。
数一数所有的1。
如果计数等于最外面的1包围的区域,我们就有一个矩形。
伪代码:
left = width + 1
right = 0
top = height + 1
bottom = 0
count = 0
for x = 1 to width
for y = 1 to height
if grid[x][y] == 1
left = min(left , x)
right = max(right , x)
top = min(top , y)
bottom = max(bottom, y)
count++
if count > 0 and count == (right-left+1)*(bottom-top+1)
print "We have a rectangle!"
else
print "We don't have a rectangle!"
关于algorithm - 在1s和0s的2d数组中找到1s的矩形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15965328/