【发布时间】:2011-12-01 12:39:18
【问题描述】:
我们如何在少于 O(n) 的时间内反转数组(或任何其他数据结构,如链表(不是双重))的子数组(例如从第 i 个索引到第 j 个索引) ? O(n) 时间消耗是微不足道的。(我想在数组上多次执行此反转,例如从头开始并反转 n 次(每次,前进一个索引,然后再次反转它),所以应该有一种方法,它的摊销分析会给我们带来少于 O(n) 的时间消耗,知道吗?
提前谢谢:)
【问题讨论】:
-
是的,但我没有要求代码,实际上我是通过 O(n) 完成的,出于好奇寻找更好的解决方案 :) 猜猜没关系,不是吗?
-
是的,问没问题,但是家庭作业应该这样标记。
-
通过所有这些逆转,您要达到的最终目标是什么?不要把我们放在一个“盒子”里,我们会有更好的机会进行一些开箱即用的思考;)
-
@Branko:这真的是一项漫长的任务,相信我,我所问的甚至根本不接近我必须做的:(我只是想改善我的期末考试的时间消耗算法,它使用这个任务(反向)来操作。
-
找到了 O(1) 的解决方案,在 here 寻找我的答案
标签: arrays algorithm linked-list reverse