最大字串和问题
来源:互联网 发布:linux文件系统怎么安装 编辑:程序博客网 时间:2024/05/17 22:53
给定一组数字(含负数),求连续的字串的最大的和。
如果不要求输出最大和的起始数字位置,可以直接这样写,比较简单:
每次读入数据后都判断前面几项的和是否大于0,然后不断保存下目前为止最大的和。
#include <iostream>using namespace std;int main(){ int n; int a, b = 0; int sum = 0; //sum表示最终的最大和 cin >> n; for (int i = 1; i <= n; i++){ cin >> a; if (b>0) b += a; else b = a; if (b > sum){ sum = b; } } cout << sum << endl; return 0;}
如果要求输出位置,那么只需要定义三个前后位置和一个temp位置变量,每次更新即可:
#include <iostream>using namespace std;int main(){ int n; int a, b = 0; int start, end, temp; int sum = 0; cin >> n; for (int i = 1; i <= n; i++){ cin >> a; if (i == 1){ //这里只是初始化 b = a; sum = a; start = 1; end = 1; temp = 1; } else if (b > 0) b += a; else {//如果之前存储的和加上现在的数据比现在的数据小(也就是b+c<=c),就把存储的和换成现在的数据,反之就说明加上之前的数会变得更大,所以可以加上 b = a; temp = i; } if (b > sum){//跟之前算出来的最大和进行比较,如果大于,位置和数据就要重置 sum = b; start = temp; end = i; } } cout << sum << " " << start << " " << end << endl; return 0;}
1 0
- 最大字串和问题
- 最大字串和问题 个人剖析
- 最大字串匹配问题
- 最大公共字串问题
- 最大字串和_2
- 最大字串和
- 最大字串和
- 最大连续字串和
- 最大连续字串和
- NYOJ 44 字串和 372 巧克力 (最大连续字串和问题)
- 数据机构-----求最大字串数据和问题
- 分治连续和最大字串
- 最大连续字串和、积
- 3求最大字串和
- 最大数字序列和问题,买卖股票问题,以及最长公共字串问题
- 编程珠玑 求解最大字串和
- nyoj44最大字串和(动态规划)
- poj-2479 Maximum sum 【最大字串和】
- POJ 1157 LITTLE SHOP OF FLOWERS【基础DP】
- Java虚拟机的类加载机制
- Java学习笔记_07
- /etc/inittab文件详解
- 信息论-离散信道及其容量笔记
- 最大字串和问题
- 案例————商品展示(SQLite数据库存储)
- html写卡片
- 前端小白训练营DAY4
- for循环创建二维数组
- Jetson TX1中Caffe安装
- Zxing生成含有LOGO二维码
- spring常用的一些注解以及注解注入总结
- Java 网络编程