首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中的数组中找到长度直到特定值

如何在java中的数组中找到长度直到特定值
EN

Stack Overflow用户
提问于 2016-09-27 21:59:57
回答 2查看 125关注 0票数 1

在许多数组中,我需要长度直到最大值,而不用排序和

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

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

EN

回答 2

Stack Overflow用户

发布于 2016-09-27 22:10:53

它的一个简单解决方案是函数Array.short,您可以这样做:

代码语言:javascript
运行
复制
/*Code not tested*/
Arrays.sort(array);
System.out.println(array[0]); //min value
System.out.println(array[array.length-1]); //max value 

您可以在这里看到有关此函数的更多信息:Java:排序数组

编辑

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

票数 1
EN

Stack Overflow用户

发布于 2016-09-27 22:27:29

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

代码语言:javascript
运行
复制
IntSummaryStatistics stats = IntStream.of(intArray).summaryStatistics();
int maxDiff = stats.getMax() - stats.getMin();

该方法具有O(n)时间复杂度,比O(n log )排序数组的时间复杂度好。

有一些更快的O(n)算法只计算最大差,但是这种方法在大多数情况下可能已经足够好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39735002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档