- 有N个数组。 - 每个数组(0..N-1)中存储了(x,y)元组(笛卡尔坐标)。 - 每个数组的长度可以不同。
我想提取组成大小为N的完整矩形的坐标组合的子集。换句话说,所有笛卡尔坐标都相邻。
例子:
findRectangles({
{*(1,1), (3,5), (6,9)},
{(9,4), *(2,2), (5,5)},
{(5,1)},
{*(1,2), (3,6)},
{*(2,1), (3,3)}
})
产生以下结果:
[(1,1),(1,2),(2,1),(2,2)],
...,
...(other solutions)...
任何两个点都不能来自同一个集合。
我最初只是计算笛卡尔积,但这很快变得不可行(目前我的用例有18个点数组,每个数组大致包含10个不同的坐标)。