在恒定空间中交织数组

Mat*_*att 18 arrays algorithm permutation

我跑过以下样本面试问题.我该如何解决?

假设我们有一个数组a1,a2,...,an,b1,b2,...,bn.

目标是在O(n)时间和O(1)空间中将此数组更改为a1,b1,a2,b2,...,an,bn.换句话说,我们需要一个线性时间算法来修改数组,只需要不超过一定量的额外存储空间.

小智 11

这个问题并不像人们想象的那样微不足道.家庭作业?大声笑.

以下链接有一个解决方案:http://arxiv.org/abs/0805.1598


Ste*_*all -6

如果你能先将数组转换为链表,那么问题就变得微不足道了。

  • 这不会到位 (7认同)
  • 这是回答算法挑战的一种荒谬的方式。 (4认同)
  • 并不真地。这是一个面试问题。关键是他们做出了错误的设计选择,并且在选择实现之前没有考虑问题规范。这是正确的回应。 (3认同)