我试图找到数组中连续数字的最大子数组。 以下面为例 {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/