美文网首页
30、最大连续子序列的和

30、最大连续子序列的和

作者: 小碧小琳 | 来源:发表于2018-10-04 11:20 被阅读0次

题目描述
求最大连续子序列的和,序列中包含正负数。
例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)

就是动归的思想了,假设F(N)代表是一第N个元素结尾的子序列的最大连续子序列的和。(注意,不是从0到N,而单单只是以N结尾)

最优子结构:

解释一下,对于F(N)来说,只有两种结果,一是接着用前面的子序列的值F(n-1)+nums[N],另一个是重新从nums[N]开头作为子序列,接下来只需要从这里面选择最大值即可:

  • 如果F(N-1)小于0,那么F(N-1)+nums[N]一定是小于nums[N]的,此时就令F(N) = nums[N]
  • 如果F(N-1)大于0,那么F(N-1)+nums[N]一定是大于nums[N]的,此时就令F(N) = F(N-1)+nums[N]

代码实现:

# -*- coding:utf-8 -*-
class Solution:
    def FindGreatestSumOfSubArray(self, array):
        F_n = array[0]
        max = F_n
        for num in array[1:]:
            if F_n <= 0:
                F_n = num
            else:
                F_n += num

            #得到最大值
            if max < F_n:
                max = F_n
        return max

相关文章

  • 30、最大连续子序列的和

    题目描述求最大连续子序列的和,序列中包含正负数。例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大...

  • D - 4 HDU - 2845

    (简单dp???excuse??) dp:最大不连续子序列和

  • 53. Maximum Subarray

    求一个给定序列的最大连续子序列和,如[-2,1,-3,4,-1,2,1,-5,4]的最大连续子序列为[4, -1,...

  • 最大连续子序列和

    描述 给定一个数组,求出最大的连续子序列和 思路 在任何讲动态规范的地方都能找到求最大连续子序列和的例子。具体来说...

  • 最大连续子序列和

    最近看到的一道编程题目: 有一个数组,如1, -5, 8, 3, -4, 15, -8,查找其中连续和最大的相邻串...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • 最大连续子序列的和

    有一个数组,如1, -5, 8, 3, -4, 15, -8,查找其中连续和最大的相邻串的值。在本例中,最大值为8...

  • [leetcode]-53. 最大子序和-S

    题目描述 给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。例如,给定序列 ...

  • 算法优化例子

    最大连续子序列和问题:给定(可能是负的)整数序列,寻找(并标识)的值为最大的序列。如果所有的整数都是负的,那么最大...

  • 机试常用算法和题型-动态规划专题

    动态规划专题 最大连续子序列求和 方法二:很巧妙 最大加权子矩阵-矩阵压缩 最长不下降子序列 最长不下降子序列应用...

网友评论

      本文标题:30、最大连续子序列的和

      本文链接:https://www.haomeiwen.com/subject/shhxaftx.html