java - 连续数字的最大子数组

标签 java arrays integer

我试图找到数组中连续数字的最大子数组。 以下面为例 {34,35,36,88,90,91,92,93} 我需要子数组 {90,91,92,93} 但我似乎不知道如何。 任何帮助表示赞赏。我已经完成了搜索,但只找到了最大和问题或最大子数组的长度,而没有子数组本身。 顺便说一句,我正在研究Java。

最佳答案

迭代数组。记下连续值的“当前最佳”子数组(看起来像开始和结束索引)和“当前实际”(即当前索引是其中的一部分)。然后对于每个索引计算出“当前实际”是什么(也是开始/结束索引) - 如果索引“i”处的值与前一个“i”不连续,那么它是新索引的开始,否则这是旧结局的新结局。如果“当前实际值”比当前最佳值长,则用当前实际值替换当前最佳值。当您到达数组末尾时,返回“当前最佳”的内容。那么唯一的问题是如何初始化“当前最佳”,这非常简单,它从索引 0 开始,到索引 0 结束。

关于java - 连续数字的最大子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989215/

相关文章:

java - 如何在移动 Sprite 时重新绘制小程序?

java - AEM Maven 无法执行安装 com.day.jcr.vault :content-package-maven-plugin

c++ - 指针和动态分配的数组

c - 显示在输入的数字之前。 (C语言编程)

java - 使用新的与正常的减速和整数的性质来声明变量(装箱/拆箱)

java - 如何从 Angular 表单传递多个参数来发出 POST 请求?

java - 顺序拆分器上的 estimateSize()

c - 从文件读取字符串并将它们复制到数组中 - C

javascript - 在html5中交替存储为javascript数组的多个视频列表

java - 获取整数值