は私がある問題を考えましたと範囲[s、e]、つまりsとeが与えられ、その配列の範囲内で最も近いmの数を見つけなければなりません(A [s] -A [e])。検索最も近い数が
インデックスの配列は1からnまでとすることができます。例えば
:私ができる
n<=10^5
t<=n
すべての思考は、すべてのテストケースのためのO(n)の溶液である:
A = {5, 12, 9, 18, 19}
m = 13
s = 4 and e = 5
だから答えは18
制約でなければなりません私はよりよい解決策が存在すると思います。
もしどのような方法でもソートされなければ、A [s]とA [e]間のすべての値にアクセスしなければならないので、O(n)です。またはむしろO(e-s)、私は思います。 – femtoRgon
@femtoRgon私はそれを知っているが、あらゆるデータ構造を使用することで、可能だと思う。 –
最大サイズ制限(10^5)を指定しているので、複雑さO(1)ではない - つまり一定の時間ですか? – Chris