【发布时间】:2021-04-07 00:16:51
【问题描述】:
所以我刚从工作面试回来,我不得不面对的一个问题是:
"例如给定一个字符数组和三个字符:
数组:[a,b,c,z,s,w,y,z,o]
字符 1:'z'
字符 2:'R' 字符 3:'R'
您的目标是将数组中的每个 'z' 替换为 O(N) 时间复杂度内的两个 R 字符。
所以您的输入将是 Array : [a,b,c,z,s,w,y,z,o]
你的输出数组将是:[a,b,c,R,R,s,w,y,R,R,o]
假设之前数组中没有'R'。
您不能使用其他数组或其他变量。
算法应该是在线算法。
您的最终数组必须是字符数组。"
我的解决方案在 O(N^2) 时间复杂度内,但在 O(N) 时间复杂度内有一个解决方案。
面试结束了,但是我还在想这个问题,谁能帮我解决这个问题?
【问题讨论】:
-
您是否假设输入数组有足够的长度来支持新元素,或者是动态数组?
标签: arrays string algorithm char