zoukankan      html  css  js  c++  java
  • 动态规划之最大子段和

    一、问题分析

    如果采用暴力解决,即考虑子段的情况总数为1+2+...+n=O(n^2)。考虑动态规划算法,可以实现O(n)算法复杂度。

    动态规划思想:

    可以将一个大问题(N个元素数组)转化为一个较小的问题(N-1个元素的数组)。假设已经知道(A[1], ...,A[n-1])中和最大的一段数组之和为All[1],并且已经知道

    (A[1],...,A[n-1])中包含A[1]的和最大的一段数组为Start[1]。那么不难看出 (A[0], ..., A[n-1])中问题的解All[0] = max{ A[0], A[0] + start[1], All[1] }。

    这是从后向前的理解方式,也可以从前往后理解,即下面的程序:

    二、程序设计

    三、程序结果

    如果序列全是负数的话,其实就是在选择最大值

  • 相关阅读:
    再逛开心网
    WAPM
    win2003安装flash cs4
    [AS3][物体的运动]
    转sql产生百万记录
    KeyedList
    timer 焦点
    sql优化
    灰色
    参数
  • 原文地址:https://www.cnblogs.com/cxmhy/p/4472472.html
Copyright © 2011-2022 走看看