配列を渡すと、各要素の最後の小さな要素の配列の配列を見つける。配列が与えられた場合、各要素の最後の小さい要素を見つけよう。
たとえば、指定された配列が{4,2,1,5,3}
であるとします。次に、各要素の最後の小さな要素は次のようになります。 1対4-> 3
4->3
2->1
1->Null
5->3
3->Null
通知は、3より小さい4
得/出力アレイは要素自体のインデックスを持っていないであろう配列の最後の要素です。結果は{4,2,-1,4,-1}
私はこの質問にインタビューで尋ねられましたが、私は解決策が簡単なO(n^2)
ソリューションよりも良いとは思えませんでした。
ご協力いただければ幸いです。
例の配列を取る - '{4,2,1,5,3,6,2}'。私が右から処理するとき。 要素3に '3,6,2 'を追加した後、ツリー(5を挿入する前に)を見て、最後に3,6,2 - ' 3(ルート)2(左) 。 2より小さい値 - 3と2があります。選択する正しい値は2ですが、フロア関数を使用すると3が返されます。 これより小さい値をどのように選択しますか? – faizan
条件「最後の小さな要素」が間違っていると思った。 – MBo
新しいアプローチが追加されました。 – MBo