Java 具有最长序列的最大连续子序列和?

Java 具有最长序列的最大连续子序列和?,java,data-structures,Java,Data Structures,我知道如何找到最大、连续的子序列和;但有时有多个子序列具有最大和。所以,我需要找到那些最长的子序列的索引,它们的和最大。 我唯一想到的就是暴力。还有什么更好的选择 下面是我在rosettacode上找到的一段代码,它与我的问题完全相同(但遗憾的是,我所知道的唯一编程语言是Java),但它是用REXX编写的: /*───────────────────────────────────────────────────────────────*/ arg @

我知道如何找到最大、连续的子序列和;但有时有多个子序列具有最大和。所以,我需要找到那些最长的子序列的索引,它们的和最大。 我唯一想到的就是暴力。还有什么更好的选择

下面是我在rosettacode上找到的一段代码,它与我的问题完全相同(但遗憾的是,我所知道的唯一编程语言是Java),但它是用REXX编写的:

/*───────────────────────────────────────────────────────────────*/
arg @                                  
say 'words='words(@) 'list='@          
say
sum=word(@,1)                          
w=words(@)                             
at=1                                   
L=0       

do j=1 for w;  f=word(@,j)

    do k=j to w; s=f

          do m=j+1 to k
          s=s+word(@,m)
          end   /*m*/

    _=k-j+1
    if (s==sum & _>L) | s>sum then do; sum=s; at=j; L=_; end
    end         /*k*/

end               /*j*/


seq=subword(@,at,L)
if seq=='' then seq="[NULL]"
sum=word(sum 0,1)
say 'sum='sum/1 "sequence="seq
/*───────────────────────────────────────────────────────────────*/
结果:

input 1 2 3 4 -777 1 2 3 4 0 0 
output
words=12 list=1 2 3 4 0 -777 1 2 3 4 0 0

sum=10 sequence=1 2 3 4 0 0

如果这是家庭作业,我建议你看看动态规划算法。特别是,您可以简化Smith-Waterman局部字符串对齐的其中一个步骤,以完成此处所需的工作。关键是要仔细阅读最优子结构的概念,问问自己,是否有一些子问题,我可以在序列中的每个点仅使用局部信息来解决?

这不是一个问题。这是一个问题描述。可能还有家庭作业。看到你的ascii艺术猫头鹰脸(不管怎么说它看起来像猫头鹰。)我很好奇为什么
123440
是一个连续的子序列。你能为我们定义连续的子序列吗?@glowcoder:在列表中不是连续找到了
12340000
?这将使它成为一个连续的子序列。有什么让人困惑?@mellamokb让人困惑的是为什么
-77712300
没有被选中,因为它在列表中。从这个意义上讲,什么定义了连续性?@glowcoder:因为总和会更小。。。?我们需要最大的连续子序列,该子序列也具有最大值。这将把总数从10减少到-767,因此它不是一个候选。我不是要求我的家庭作业,只是为了学习,特别是我上面给出的源代码背后的想法。或者任何链接(由于几乎没有学术文献),这样我就可以了解更多关于这个问题的信息。。它被称为连续的subseq。因为它在序列中是连续连接的。我就是这样解释的。既然你发现英语不是我的母语,^“,,123400的和比任何子序列都大,而且比1234或12340长,,