有一个位表,宽度为一千个元素,行数超过一万行。您需要将行分成一到四个元素的组,其中该组中的每一行在与另一行相同的位置上没有 1 位。
嗯,就是这样。如果宽度为 3 并且有 5 行,
1 0 0
0 1 0
0 0 1
1 0 1
1 1 1
,则输出三组
1)
1 0 0
0 1 0
0 0 1
1 0 1
1 1 1
众所周知,最常见的情况是没有不相交的线,这意味着有多少条线就有多少组。
任务是找到不相交的线并将它们分成四组。只有当由于合适的组溢出而无法堆叠不相交的字符串时,才可以将不相交的字符串最终放入一个字符串的组中。
到目前为止,我只是通过详尽的搜索解决了这个问题https://dotnetfiddle.net/k6tBjL,其中每一行都与其他每一行进行比较(好吧,几乎),这给出了令人不快的性能。
有没有办法降低算法的复杂度并加快这个过程?