シーケンス が与えられた場合、 がシーケンス内の最初の要素である要素a[1], a[2], a[3] .... a[n]
を ごとに検索する必要があります。a[i]
a[j]
a[j]
a[i - 1], a[i - 2], a[i - 3]....
a[j] < a[i]
言い換えれば、a[j]
どこでa[j] < a[i]
とを見つけなければなりません1<=j<i
。しかし、そのような要素が複数ある場合は、最も近いものを選択する必要がありますa[i]
。
たとえば、次の順序で:
2 6 5 8
6 と 5 の両方に 2 を出力し、8 に 5 を出力する必要があります。
これは で簡単に実行できることはわかっていますがO(n^2)
、これを行うより効率的な方法はありますか?