另一个访问问题要求我在尽可能最短的计算时间内给出一个有序数组的重复值的最大可能子数组。给定一个排序数组,找到重复值的最大子数组
Let input array be A[1 ... n]
Find an array B of consecutive integers in A such that:
for x in range(len(B)-1):
B[x] == B[x+1]
我认为最好的算法将在阵列中的一半,并从中间向外去,并从中间的整数彼此比较和寻找从中间相同整数的最长的应变。然后,我将通过将数组分成两半并在两半中调用方法来递归地调用该方法。
我的采访者说我的算法很好,但我的分析说算法是O(logn)是不正确的,但从来没有告诉我什么是正确的答案。我的第一个问题是这个算法的Big-O分析是什么? (请尽可能多地展示工作!Big-O不是我的特长)而我的第二个问题纯粹是因为我的好奇心,是否有更省时的算法?
我挺你的问题混淆。你能详细描述面试官的意思吗? (什么是“紧张”?)你能否更详细地描述你的解决方案? (可能使用伪代码。) – svick
未提供更多详细信息。我基本上用分而治之。 – user1246462
请修改您的标题,以便将来对本网站的用户更有用。 –