最大子段和
来源:互联网 发布:最好的源码下载网站 编辑:程序博客网 时间:2024/05/18 17:04
动态规划求解,既简单,也好理解
设dp[i]为选第i个数的最大子段和
则有dp[i]=max(dp[i-1],0)+a[i]
最后在遍历数组找出最大值就可以了。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int a[4000000];
int dp[4000000];
int main()
{
cin >> n;
for (int i = 0;i < n;i++)
cin >> a[i];
for (int i = 0;i < n;i++)
dp[i + 1] = max(dp[i] ,0 ) + a[i];
int ans = -10000000;
for (int i = 0;i < n;i++)
ans = max(ans, dp[i + 1]);
cout << ans;
return 0;
}
阅读全文
0 0
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- “最大子段和”
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- 查找销售模块中装箱单提单主提单当前的编号
- Python3之Django Web框架安装mysqlclient
- 嵌入式linux路线图
- LeetCode-167:Two Sum II
- Hive安装
- 最大子段和
- 【安卓随笔】引入OpenCV进行NDK开发之图片传递(案例:文字水印)
- java图形图像处理库 Thumbnails
- JAVA基础学习20171024-初识
- LOMBOK使用记录
- NKOJ 4252 数三角形(乱搞)
- 2017NOIP模拟赛 软件安装(tarjan缩点+树形dp)
- tflearn安装报错hdf5 is not supported on this machine
- Java8:forEach