如果您有一种矩阵(或具有不同大小的行列表),每行中随机元素的随机数,您将如何重新排列矩阵,以便相同的元素出现在同一列中?
每行至少有一个元素/列,但不同的行可以有不同数量的元素/列。每行最多出现一次。
例如:
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之前。对不起,这是我最初没有添加的一个重要限制因素,用户1734710提供的解决方案通常没有涵盖。
答案 0 :(得分:1)
v
v
并删除重复项m
x n_rows
v.size()
e
中的每个元素r
,在i
中查找e
的位置v
并将e
存储在{ {1}}