动态规划——最大子数组和

news/2024/10/19 2:15:38/

问题描述:

最大子数组和
Time Limit: 1000 MSMemory Limit: 5000 KB

Description

给定一个长度为N的int型数组a[0,1,2,...N-1], 请计算最大子数组和.

Input

第一行输入M表示包含M组测试数据,每组先输入N (N<=50000), 接着输入N个int型整数.

Output

输出最大子数组和.

Sample Input

2
5 -1 -5 -2 -1 -3
5 2 -1 3 -2 4

Sample Output

-1
6

问题分析:

显然该题应使用动态规划的方法求解。

可以使用动态规划来求解最大子数组和。假设dp[i]表示以第i个元素结尾的最大子数组和,那么可以得到以下状态转移方程:

dp[i] = max(dp[i-1]+a[i], a[i])

其中a[i]表示第i个元素的值。初始状态为dp[0] = a[0]。最终的答案即为dp[i]中的最大值。

时间复杂度为O(N)。

代码示例:

#include <iostream>
#include <algorithm>using namespace std;const int MAXN = 50005;int a[MAXN];
int dp[MAXN];   // dp[i]表示以第i个元素结尾的最大子数组和int main() {int T;cin >> T;while (T--) {int n;cin >> n;for (int i = 0; i < n; i++) {cin >> a[i];}dp[0] = a[0];int ans = dp[0];for (int i = 1; i < n; i++) {dp[i] = max(dp[i-1]+a[i], a[i]);//整篇代码的核心,ans = max(ans, dp[i]);}cout << ans << endl;}return 0;
}


http://www.ppmy.cn/news/58308.html

相关文章

CentOS+nginx手动搭建WordPress

文章目录 前提条件php安装安装 EPEL 源及源管理工具&#xff1a;安装 REMI 源&#xff1a;安装 PHP7.3 及扩展&#xff1a;设置开机自动启动其他php命令 wordpress 安装下载WordPress将下载的WordPress移动至网站根目录修改WordPress配置文件配置nginx 创建完成后根据域名访问 …

C++的智能指针

文章目录 1. 内存泄漏1.1 什么是内存泄漏1.2 内存泄漏分类 2. 为什么需要智能指针3. 智能指针的使用及原理3.1 RAII3.2 使用RAII思想设计的SmartPtr类3.3 让SmartPtr像指针一样3.3 SmartPtr的拷贝3.4 auto_ptr3.5 unique_ptr3.6 shared_ptr3.6.1 shared_ptr的循环引用3.6.2 wea…

Django入门ORM(Django操作MySQL) 专题一

Django入门ORM 原始数据库操作方式&#xff08;原生SQL&#xff09; 最早我们如果不用ORM的话&#xff0c;我们可以用MYSQL Pymysql的方式进行数据库的操作。 操作方法如下。 import pymysqldb pymysql.connect(host"", user"", password""…

现在进行时

现在进行时 解释 现在进行时态表示现在&#xff08;说话瞬间&#xff09;正在进行或者发生的动作。 例句 Look!She is reading a book.看&#xff0c;她正在读书 They are wathching TV now.他们现在正在看电视 I am doing my homework at home now.我现在正在家里做作业…

509. 斐波那契数

斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 n > 1 给定 n &…

二十五、OSPF高级技术——开销值、虚链路、邻居建立、LSA、静默接口

文章目录 调试指令&#xff08;三张表&#xff09;1、邻居表&#xff1a;dis ospf peer brief2、拓扑表&#xff08;链路状态数据库&#xff09;&#xff1a;dis ospf lsdb3、路由表&#xff1a;dis ip routing-table 一、OSPF 开销值/度量值&#xff08;cost&#xff09;1、co…

微信小程序学习实录1(wxml文档、引入weui、双向数据绑定、提交表单到后端)

微信小程序学习实录 一、wxml文档二、新建页面快捷方式三、微信小程序引入weui四、双向数据绑定1.wxml渲染层2.js逻辑层 提交表单到后端五、微信小程序跳转到H5 一、wxml文档 <!-- index.wxml --> <view><!-- 数据绑定 --><view><text>{{name}}…

深入理解机器学习——数据预处理:归一化 (Normalization)与标准化 (Standardization)

分类目录&#xff1a;《深入理解机器学习》总目录 归一化 &#xff08;Normalization&#xff09;和标准化 &#xff08;Standardization&#xff09;都是特征缩放的方法。特征缩放是机器学习预处理数据中最重要的步骤之一&#xff0c;可以加快梯度下降&#xff0c;也可以消除不…