当前位置:网站首页>【动态规划】连续子数组的最大和
【动态规划】连续子数组的最大和
2022-07-31 03:06:00 【#小苏打】
动态规划(DP):动态规划中每一个状态一定是由上一个状态推导出来的,有别于贪心,贪心是没有状态推导,而是从局部中选择最优的。
动态规划解题步骤
1:确定dp数组,dp[ i ]为包括下标 i 之前的最大连续子序列和。
2:确定状态转移方程,dp[ i ]有两个方向推出,dp[ i-1 ]+nums[ i ] 为加入当前连续子序列和,
num[ i ]为从头开始计算到下标为 i 的子序列和。
3:初始化dp数组,本题目可以看出dp[ i ]依赖于dp[ i-1 ],所以dp[ 0 ]是递推公司基础。
4:确定遍历顺序,本题需要从前往后遍历。
class Solution {
public int maxSubArray(int[] nums) {
int[] dp = new int[nums.length];
dp[0] = nums[0]; //初始化dp
int max = dp[0]; //作为一个中间变量输出最大值
for(int i = 1;i<nums.length;i++){
dp[i] = Math.max(dp[i-1]+nums[i],nums[i]); //状态转移方程
max = Math.max(max,dp[i]);
}
return max;
}
}
边栏推荐
猜你喜欢
Discourse 自定义头部链接(Custom Header Links)
TCP详解(二)
11. Redis implements follow, unfollow, and follow and follower lists
JS 函数 this上下文 运行时点语法 圆括号 数组 IIFE 定时器 延时器 self.备份上下文 call apply
QML的使用
Mysql 45讲学习笔记(二十五)MYSQL保证高可用
【Android】Room —— SQLite的替代品
MP使用时的几个常见报错
8. Unified exception handling (controller notifies @ControllerAdvice global configuration class, @ExceptionHandler handles exceptions uniformly)
Problems that need to be solved in distributed system architecture
随机推荐
原子操作 CAS
加密公司向盗窃的黑客提供报价:保留一点,把剩下的归还
TCP详解(三)
The simulation application of common mode inductance is here, full of dry goods for everyone
Installation of mysql5.7.37 under CentOS7 [perfect solution]
关于 mysql8.0数据库中主键位id,使用replace插入id为0时,实际id插入后自增导致数据重复插入 的解决方法
WebSocket Session is null
YOLOV5学习笔记(三)——网络模块详解
【编译原理】词法分析程序设计原理与实现
CefSharp入门-winform
想从手工测试转岗自动化测试,需要学习哪些技能?
【HCIP】ISIS
华为分布式存储FusionStorage知识点总结【面试篇】
4、敏感词过滤(前缀树)
开题报告之论文框架
局域网电脑硬件信息收集工具
Analysis summary - self-use
10 权限介绍
STM32 problem collection
分布式与集群是什么 ? 区别是什么?