我跑过以下样本面试问题.我该如何解决?
假设我们有一个数组a1,a2,...,an,b1,b2,...,bn.
目标是在O(n)时间和O(1)空间中将此数组更改为a1,b1,a2,b2,...,an,bn.换句话说,我们需要一个线性时间算法来修改数组,只需要不超过一定量的额外存储空间.
我在2天内接受采访,我很难找到这个问题的解决方案:我想要做的是......对于任何电话号码......程序应该打印出它代表的所有可能的字符串.例如.)数字中的2可以用'a'或'b'或'c'代替,3代表'd''e''f'等.这样可以形成多少可能的排列给出了电话号码.我不希望任何人为它编写代码......一个好的算法或伪代码会很棒.
谢谢