さらに別のインタビューの質問では、可能な限り短い計算時間でソートされた配列が与えられた場合に、繰り返される値の可能な最大のサブ配列を見つけるように求められました。
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]
最良のアルゴリズムは、配列を半分に分割し、中央から外側に向かって整数を相互に比較し、中央から同じ整数の最長のひずみを見つけることだと思います。次に、配列を半分に分割し、2つの半分でメソッドを呼び出すことにより、メソッドを再帰的に呼び出します。
私のインタビュアーは私のアルゴリズムは良いと言いましたが、アルゴリズムがO(logn)であるという私の分析は正しくありませんが、正解が何であるかを教えてくれませんでした。私の最初の質問は、このアルゴリズムのBig-O分析とは何ですか?(できるだけ多くの作業を見せてください!Big-Oは私の得意ではありません。)そして、私の2番目の質問は、もっと時間効率の良いアルゴリズムがあるかどうかという私の好奇心のためだけです。