【发布时间】:2013-10-17 23:37:46
【问题描述】:
给定一个整数矩阵 M。检查矩阵中的两行是否相同。给出最佳方法。
Example:
[{1, 2, 3},
{3, 4, 5},
{1, 2, 3}]
在上面的矩阵中,第 1 行和第 3 行是相同的。
可能的解决方案:
Given a matrix, we can convert each row in a string (example using to_string()
method of C++ and concatenating each element in a row to a string). We do this
for every row of the matrix, and insert it in a table that is something like
(map<string, int> in C++). And hence, duplicate row can be checked in O(mn) time
for an mxn matrix.
我能做得比这更好吗?或者,上述方法有什么缺陷?
【问题讨论】:
-
我不认为你能比 O(mn) 做得更好,因为在最坏的情况下,每个元素都需要被读取。
-
这将是最佳的,因为@Matt 说过。只是一个警告,你需要在连接元素时放置一些分隔符。否则
{1, 23}和{12, 3}将被视为相同。 -
@justhalf:感谢您指出这一点。
标签: algorithm matrix time-complexity