【问题标题】:How to find the subsequence of the largest sums in C/MIPS?如何在 C/MIPS 中找到最大和的子序列?
【发布时间】:2017-04-19 00:11:44
【问题描述】:

所以数组中的以下输入将类似于

  Array: {7 2 5 -3 3 6 -4 1}

子序列是

 Subseq: : 7 2 5 -3 3 6

最大和的答案是 20。那么,这里到底发生了什么。我不理解子序列的概念。阅读后,我认为子序列从 array[0] 开始,一直到 array[n] 并选择了最大的数字,但似乎并非如此,因为数字应该在数字 7 之后停止。我对这个用户输入的数组的子序列到底做了什么感到困惑。

【问题讨论】:

  • 我们不是一个“解释我的家庭作业”的网站。问你的导师。如果你有问题,他的工作就是教你和解释。
  • @olaf 如果你能解释一个概念,我可以做我的功课。我不明白这里发生了什么,因为对我来说,答案应该是 7,因为一旦它达到一个较低的数字,代码不应该停止。我不是要你这样做,但谢谢你的评论

标签: c arrays mips subsequence


【解决方案1】:

他真正发现的是许多值的总和,因此他可以获得最大可能的数字。 在 7 处停止,它只给出 o 7 的总数。

7 2 = 9

7 2 5 = 14

7 2 5 - 3 = 11

7 2 5 - 3 3 = 14

7 2 5 -3 3 6 = 20

【讨论】:

    【解决方案2】:

    在上述帮助之后,我感到困惑的原因是不确定子序列到底在做什么。但是,我现在明白它是采用最大的数字组并将它们加在一起。在我的数字示例中:

     Array: {7,2,5,-3,3,6,-4,1}
    

    它需要数字:

     Answer: {7,2,5,-3,3,6}              //adds to = 20
    

    这是连续数字序列的最大和。

    另一个简单子序列的例子是:

     Array: {-5 -10 5 5 -5 -10}
     Answer:{5, 5}   //it adds 5 and 5 because that is the largest continuous sequence (10)
    

    【讨论】:

      【解决方案3】:

      你的标题回答了你的问题:子序列的最大总和

      所以你必须在数组中找到总和最大的元素。在这种情况下:7+2+5-3+3+6 = 20

      【讨论】:

      • 那是有道理的,但有人会怎么做。是否有特定的算法可以遵循?我不明白它会如何继续检查,因为一旦它达到负数,我认为它应该停止。不确定该评论是否清楚,但我理解您所说的
      猜你喜欢
      • 2015-01-09
      • 2018-08-10
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多