【发布时间】:2012-09-29 07:23:34
【问题描述】:
建议?
给定一个未排序的数组和元素的数量,对于每个元素,如果没有数字 -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 + " ");
}
}
【问题讨论】:
-
输出不应该是
3 1 2 -1 -1吗? -
抱歉,我无法完全理解您的问题,如果正确理解您的问题,您的代码和示例输出似乎会做不同的事情。请用清晰的例子解释
标签: arrays quicksort binary-search mergesort divide-and-conquer