【发布时间】:2014-04-15 07:53:49
【问题描述】:
这不是作业,而是我在一个没有答案的网站上阅读的面试问题。我只是在验证我的解决方案。
问题:
给定一个按排序顺序包含 0 和 1 的矩阵。设计一个算法来返回最大数量为 1 的行索引。之后他修改了一些行按升序排序和一些降序排序的问题。
我正在考虑对每一行应用二进制搜索,这将导致 O(Rows*LogRows),但对于那些计数,这将再次导致另一个迭代,我正在考虑减少它计时,将我正在迭代的那些添加到哈希映射或字典中,然后在保存了个数后,我再次迭代以查找最大行数。
在复杂性方面是否有更快的解决方案,或者我的方法存在缺陷?
【问题讨论】:
-
为什么在获得第一个(升序)或第一个零(降序)的索引后还需要计数?确定一行是降序还是升序可以在单个操作中完成 - 比较第一个和最后一个元素。
-
抱歉,“按排序顺序”的矩阵定义不充分。请解决这个问题。