编程之美 2.14 求数组的子数组之和的最大值
2013-04-18 22:22
267 查看
问题:一个由N个整数元素的一维数组,求其所有子数组中连续的元素和的最大值。
算法时间复杂度O(N)
使用动态规划的方法,有K个阶段,每个阶段有两种状态。
算法时间复杂度O(N)
使用动态规划的方法,有K个阶段,每个阶段有两种状态。
#include<iostream> using namespace std; #define max(a,b) (((a)>=(b))?(a):(b)) int main() { int *A; int i=0; int n,start,all; char ch; cout<<"请输入整数,按回车键结束输入:"<<endl; A=(int *)malloc(sizeof(int)); cin>>A[0]; while ((ch=getchar())!='\n') { i++; A=(int*)realloc(A,sizeof(int)*(i+2)); cin>>A[i]; } i++; A[i]='\0'; n=i; start=A[n-1]; all=A[n-1]; for (i=n-2;i>=0;i--)//k个阶段 { start=max(A[i],start+A[i]);//两个状态 all=max(start,all); } cout<<all<<endl; return 0; }
相关文章推荐
- [编程之美] 2.14 求数组的子数组之和的最大值
- 【编程之美】2.14 求数组的子数组之和的最大值
- 编程之美-2.14-求数组的子数组之和的最大值
- 读书笔记之编程之美 - 2.14 求数组的子数组之和的最大值
- [编程之美] PSet2.14 求数组的子数组之和的最大值
- 编程之美 2.14 数组的子数组之和的最大值 扩展题2
- 编程之美-2.14 求数组的子数组之和的最大值
- 南邮编程在线编程题十一:指针形参的使用,找数组中的最大最小元素值
- 【面试题-编程】查找数组中差值最大的两个数
- 【编程题目】一个整数数组,长度为 n,将其分为 m 份,使各份的和相等,求 m 的最大值★★ (自己没有做出来!!)
- 编程之美---子数组之和的最大值(二维)
- 程序员编程艺术:第七章、求连续子数组的最大和
- 【编程之美】读书笔记:寻找数组中的最大值和最小值
- [编程之美2.14]求子数组之和的最大值
- 结对编程之子数组最大的和(由于一直登不上我的账号,在规定日期内只在我搭档的博客上交了)
- 编程之美:2.14 求数组的子数组之和的最大值和最小值(动态规划)
- 编程之美 set 5 寻找数组中最大值和最小值
- 编程之美---求首尾相连数组子数组之和的最大值
- 编程珠玑第八章——分治算法求解数组中的最大的连续和
- 编程之美2.14 求数组的子数组之和的最大值