如果你有一种矩阵(或不同大小的行的列表),每行有随机数的随机元素,你会如何重新排列矩阵,使相同的元素出现在同一列中?“矩阵”与随机元素,如何在同一列对齐相同的元素?
每行至少有一个元素/列,但不同的行可以有不同数量的元素/列。每个元素每行最多显示一次。
例如:
a|c
a|b|c
c|e
a|d|e
b|d
之后应该是这样的:
a| |c| |
a|b|c| |
| |c| |e
a| | |d|e
|b| |d|
什么会是一个有效的算法?
编辑:这只是一个简单的例子,任何正数列和每列元素的正数应该被覆盖。
元素不必保留其原始列,但应该以最小距离出现在生成矩阵的原始列中。输入中元素y之前出现的每个元素x也必须出现在输出中的y之前。对不起,这是我最初没有添加的一个重要约束,这通常不由user1734710提供的其他好解决方案所涵盖。
你能否提供一个更复杂的角落案例?还是这真的很简单?五个不同的字母,五列。故事结尾 –
做元素必须保留其原始列吗? – UmNyobe