2016-09-27 71 views
0

在多个阵列的我需要长度直到最大值不使用排序和如何找到长度直到特定值以阵列在Java

{6,8,2,7,10,3,1 }

是否有可能返回最大的第一个最小值是该数组(10-2 = 8)?

+1

目前尚不清楚你想要什么。在你的例子中(10-2 = 8)'2从哪里来?数组的最大值是10?从'array [1]'是8还是完全不同?你需要索引,直到最大值(这里应该是5)? – Asoub

回答

1

它一个简单的解决方案是功能Array.short,你可以这样做:

/*Code not tested*/ 
Arrays.sort(array); 
System.out.println(array[0]); //min value 
System.out.println(array[array.length-1]); //max value 

你可以看到更多关于此功能在这里:Java: Sort an array

编辑

如果你不能排序,你可以在这里使用算法一个很好的例子http://www.java2novice.com/java-sorting-algorithms/bubble-sort/

+2

也许它是Arrays.sort(array).... – Rishi

+0

@Rishi谢谢你是真的我通过手机,对不起。 –

+0

@DanteFañaBadia没有使用排序我需要10-2而不是10-1 – Digs

0

最简单的代码使用IntStream#summaryStatistics()

IntSummaryStatistics stats = IntStream.of(intArray).summaryStatistics(); 
int maxDiff = stats.getMax() - stats.getMin(); 

这种方法具有O(n)的时间复杂性,这是为O更好(N log n)的分选阵列的时间复杂度。

有更快的O(n)算法,只是计算最大差异,但这种方法可能足以满足大多数目的。