これはアルゴリズムの最適化問題です。
整数配列があり、そのような要素のインデックスを含むA
配列を構築したい( )B
B[i]
j
A[j]
B[i] = j
1. j > i
2. A[j] < A[i]
3. j is minimum of all possible j's.
たとえば、次の場合A
:
A = [1,5,6,4,3,1,2]
次にB
なります(0からのインデックス)
B = [-1,3,3,4,5,-1,-1]
B[0] = -1
1
よりも大きいインデックスを持つ よりも小さい数字は存在しないため0
です。
B[1] = 3
なぜなら、は、より小さい数を含む、でA[3]
インデックスを作成する最も右に近い要素だからです。などなど。1
A
A[1]=5
O(n*log(n))
二分探索木を使用した複雑なソリューションを知っています。O(n)
複雑さを高めたり、それが不可能であることを証明するにはどうすればよいですか?