53题、动态规划求子数组的最大和

【LeetCode】 53.最大子数组和(动态规划)


前言

该题在力扣是中等题型,比较典型,主要是记录思路和代码书写方式

一、动态规划是什么?

动态规划的思想就是将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案,不必重新求解。能用动态规划的方法求解的问题有两个特质:最优子结构性质和子问题重叠性质

二、题目要求及样例

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和	
提示:子数组是连续的

1.自己的思路:
①遍历数组找出nums中最大的元素和它的下标;如果最大的元素小于等于0,得解,否则下一步
②以这个最大的元素为起点,计算这个与前后元素的和,每次计算完的值与上次计算的值作比较,如果小于上次计算的值,说明有负数
③陷入沉思……
2.正确的思路(动态规划法):
①定义子问题,或者叫定义状态,把不确定的因素确定下来,进而把子问题定义清楚
本题中不确定最大的连续子数组一定会选哪个数,那么我们可以求出所有经过输入数组的某一个数的连续子数组的最大和,不妨把经过输入数组的每一个元素当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值