连续数字最大的子阵列

时间:2015-11-29 23:04:20

标签: java arrays integer

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

1 个答案:

答案 0 :(得分:1)

遍历数组。记下连续值的“当前最佳”子阵列(看起来像是开始和结束索引)和“当前实际”(即当前索引所属的一个)。然后为每个索引计算出'当前实际'是什么(也是开始/结束索引) - 如果索引'i'的值不是前一个'i'的连续值那么它就是新的索引的开始,否则这是旧的结束。如果“当前实际”然后变得比当前最佳值更长,那么用当前实际值替换当前最佳值。当你到达数组的末尾时,返回“当前最好的”。唯一的问题是如何初始化'当前最佳',这很容易,它从索引0开始,到索引0结束。