动态规划解决问题是自底向上。原问题的规模是n个元
素。这n个元素不好考虑,我们先考虑n-1个元素,这样还不好考
虑,我们考虑n-2个元素,这样依次递减,最后问题规模变成一个
元素。但是我们发现,在递减的过程中间,子问题的最优解包含
在原问题的最优解之中,而且子问题的解还有一些是重复的。
因此,使用动态规划来解决这个问题。

思想:
对字段序列进行一个循环,
如果之前的序列b>0,则加入这个新的序列之中;
如果之前的序列b<=0,则重新设置字段的序列和为nums[i];
如果之前的序列加上nums[i],的值大于之前的最大序列和,则更新最大序列和;
我们要写出一个递归方程。我们设置一个数组b来存放最优解,首先将b[1]=a[1],a存放的是我们的n个元素。第i个元素,他的状态就是将他放不放到数组b中(和之前的有些像)。因此,递归方程就是:b[i]=max{b[i-1]+a[i],a[i]}

#include<iostream>
using namespace std;long long MaxSum(long long *nums,int n)
{long long sum=0;long long  b=0;//b是临时的字段和的数值 for(int i=0;i<n;i++){if(b>0){b=b+nums[i];}else{b=nums[i];}if(b>sum)//更新字段和值 {sum=b;}}return sum;
}
int main()
{cout<<"请输入字段的长度:";long long  n;cin>>n;long long nums[n];cout<<"请输入字段序列(中间用空格隔开):";for(int i=0;i<n;i++){cin>>nums[i];} cout<<"最大字段和为:"<<MaxSum(nums,n);return 0;
}

算法设计与分析——动态规划——最大字段和问题相关推荐

  1. 算法设计与分析-----动态规划

    算法设计与分析-----动态规划(c语言) 一.动态规划 1.定义 2.动态规划问题的解法 3.动态规划求解的基本步骤 4.动态规划与其他方法的比较 5.求解整数拆分问题 6.求解最大连续子序列和问题 ...

  2. 算法设计与分析——动态规划(二):钢条切割

    分类目录:<算法设计与分析>总目录 相关文章: · 动态规划(一):基础知识 · 动态规划(二):钢条切割 · 动态规划(三):矩阵链乘法 · 动态规划(四):动态规划详解 · 动态规划( ...

  3. 算法设计与分析——动态规划(五):最长公共子序列

    分类目录:<算法设计与分析>总目录 相关文章: · 动态规划(一):基础知识 · 动态规划(二):钢条切割 · 动态规划(三):矩阵链乘法 · 动态规划(四):动态规划详解 · 动态规划( ...

  4. 计算机算法设计与分析 动态规划 实验报告,动态规划法解最长公共子序列(计算机算法设计与分析实验报告).doc...

    动态规划法解最长公共子序列(计算机算法设计与分析实验报告) 实报 告 实验名称:任课教师::姓 名:完成日期:二.主要实验内容及要求: 要求按动态规划法原理求解问题: 要求交互输入两个序列数据: 要求 ...

  5. 算法设计与分析——动态规划(一)矩阵连乘

    动态规划--Dynamic programming,可以说是本人一直没有啃下的骨头,这次我就得好好来学学Dynamic programming. OK,出发! 动态规划通常是分治算法的一种特殊情况,它 ...

  6. 算法设计与分析——动态规划——数字三角形问题

    数字三角形问题 1.题目描述:给定一个由n行数字组成的数字三角形,如图3-7所示.设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. 算法设计:对于给定的由n行数字组成的数字 ...

  7. 算法设计与分析—动态规划算法

    动态规划算法 1.动态规划算法基本思想 2.动态规划算法求解步骤 3. 0-1背包问题 在现实生活中,存在这样一类问题,它们的活动过程不仅可以分成若干阶段,而且在任意一个阶段(不妨设为第i个阶段)以后 ...

  8. 算法设计与分析———动态规划———最大子段和

    问题描述: 最大子段和问题是将一个n个整数的序列a[1],a[2]-.a[n]中字段a[first]-.a[last]之和,(1<=first<=last<=n)求这些子段和中最大的 ...

  9. 算法设计与分析——动态规划——矩阵连乘问题

    动态规划与分治法的异同: 相同点:其基本思想都是将待求解问题分解为若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解. 差异点:与分治法不同的是,适合用动态规划法求解的问题经分解得到的子问题 ...

最新文章

  1. Runnable接口和贪心算法
  2. Linq 入门系列 [OfType,ToArray,ToList,ToDictionary]
  3. javascript网页自动填表_JavaScript脚本实现网页批量自动勾选及内容填写
  4. tensorflow,Anaconda和 vscode 如何连接以及问题解决
  5. 嵌入式电路设计(外围模块)
  6. java程序默认包含的包是,Java程序默认引用的包是 答案:java.lang包
  7. android工具栏设为底层,Android 隐藏底部工具栏
  8. 20141124-1
  9. ppt设置外观样式_ppt设置图片样式_PPT如何快速修改图像样式图文教
  10. web项目使用的前后端技术
  11. android屏幕适配无效_Android 屏幕适配终结者
  12. go技术文章梳理(2017)
  13. 矩阵求逆(JAVA)利用伴随矩阵
  14. 机器人开发--D435
  15. 【C语言】把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
  16. 文件下载兼容ie,Firefox,chrome
  17. 华侨大学计算机科学与技术排名,2019华侨大学专业排名
  18. 烽火十八台丨从3.15曝光的食品安全问题看供应链网络安全防护
  19. 微信开发者工具-真机调试
  20. 多地推广应用电子劳动合同,君子签赋能人力资源管理数字化

热门文章

  1. 在.NET开发面向Oracle数据库的应用程序
  2. Django09:图书管理系统笔记/choices用法/ MTV与MVC模型/多对多三种创建方式
  3. linux android sdk gengxinman,Android 实现增量更新
  4. spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件
  5. sql将html转成excel,使用SQL*PLUS,构建完美excel或html输出
  6. 【BIM入门实战】Revit 2018模型设计阶段重点及注意事项总结
  7. Android之解决aidl里面函数参数太大不能跨进程通信的问题
  8. 在n个火柴里面拿3根出来拼接成最大三角形的周长
  9. NP完全性理论与近似算法
  10. 967c语言程序设计是什么,2018年湖南师范大学数学与计算机科学院967C语言程序设计和数据结构[专硕]之C程序设计考研核心题库...