建议?
给定一个未排序的数组和元素的数量,对于每个元素,如果没有数字 -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 + " ");
}
}