助言?
並べ替えられていない配列と要素の数が与えられた場合、各要素について、数値-1がない場合は、それ自体と配列内で彼よりも小さい最も遠い要素との間の要素の数を出力する必要があります。
例:
入力:10 6 10 3 9 15出力:3 1 1 -1 -1 -1
私はすでにそれをしました、しかし私の教授はそれがはるかに効率的にすることができると言いました、もちろん私は実際にo(n ^ 2)をしています。分割統治?、二分探索?
私の解決策:
public void MedidaMolestia(int A[], int N)
{
int i=0, temp=0, k=N-1, j=0;
for(i=0; i<N; i++)
{
temp = A[i];
for(j=N-1;j>i ; j--)
{
if(A[j]<temp)
break;
}
if(i==j)
System.out.print(-1 + " ");
else
System.out.print((j-i)-1 + " ");
}
}