题目

https://leetcode-cn.com/problems/maximum-subarray/

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

思路

假设 nums 数组的长度是 n,下标从 0 到 n - 1。

我们用 ai 代表 nums[i],用 f(i)代表以第 ii个数结尾的「连续子数组的最大和」,那么很显然我们要求的答案就是:

因此我们只需要求出每个位置的 f(i),然后返回 f 数组中的最大值即可。那么我们如何求 f(i)呢?我们可以考虑 ai​ 单独成为一段还是加入 f(i - 1) 对应的那一段,这取决于 ai和 f(i - 1) + ai的大小,我们希望获得一个比较大的,于是可以写出这样的动态规划转移方程:

class 

最大连续子数组和 动态规划_53. 最大子序和(动态规划)相关推荐

  1. 最大连续子数组和 动态规划_剑指Offer算法题 33:连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  2. leetcode剑指 Offer 42. 连续子数组的最大和(动态规划)

    输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值. 要求时间复杂度为O(n). 示例1: 输入: nums = [-2,1,-3,4,-1,2 ...

  3. 最大连续子数组和 动态规划_每日LeetCode,乘积最大子数组

    152. 乘积最大子数组​leetcode-cn.com 给你一个整数数组nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 示例 1: 输入: ...

  4. 【动态规划】记录每步选择:牛客网:连续子数组的最大和(二)

    输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,找到一个具有最大和的连续子数组. 1.子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等 ...

  5. 【剑指 offer】(31)—— 连续子数组的最大和(动态规划)

    题目:输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为 O(n)O(n). 例如,输入的数组为 {1, -2, 3, 10, ...

  6. php取数组中连续数,PHP实现求连续子数组最大和问题2种解决方法

    本文实例讲述了PHP实现求连续子数组最大和问题2种解决方法.分享给大家供大家参考,具体如下: 问题描述 求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整 ...

  7. 【剑指offer-Java版】31连续子数组的最大和

    连续子数组最大和,要求O(n)时间复杂度 思路:核心思想就是当前遍历数组的时候,遇到的是一个正数,计算这个正数加上已有的和得到一个新的和 如果这个新的和比当前的正数大,那么保留该和否者更新和为当前正数 ...

  8. Algorithm:C++语言实现之求最大连续子数组(暴力法、分治法、分析法、动态规划法)

    Algorithm:C++语言实现之求最大连续子数组(暴力法.分治法.分析法.动态规划法) 目录 求最大连续子数组 T1.code暴力法  O(n3) T2.分治法   O( n*log(n) ) T ...

  9. 算法--三种方法求连续子数组的最大和

    这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典. 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  10. 【最佳解法】剑指 Offer 42. 连续子数组的最大和

    我是小张同学,立志用最简洁的代码做最高效的表达 思路:动态规划 假设nums\textit{nums}nums 数组的长度是 nnn,下标从 000 到 n−1n-1n−1. 我们用 f(i)f(i) ...

最新文章

  1. 服务API版本控制设计与实践
  2. es6 promise
  3. mysql clomn_mysql 备份脚本
  4. Flink再度霸榜,还不上车?
  5. 概述Nod32的部署
  6. 连连看java代码_连连看 - java代码库 - 云代码
  7. 浦发银行计算机笔试题库,2018浦发银行校园招聘笔试试题库
  8. poj 2182 Lost Cows 解题报告
  9. IOS 定义手势监听器详解,利用 UIGestureRecognizer 进行捏合、旋转、平移、点击、长按手势事件响应
  10. 训练日志 2019.3.10
  11. 关闭IDEA双击shift全局搜索
  12. 【Java基础】使用NumberFormat 、DecimalFormat进行数字格式化
  13. 一年读完100本书(5/100)《创新者的窘境》2021-02-25
  14. 我的英文原版书阅读记录(已看完25本)
  15. cortana打开_如何在Windows 10中打开“嘿Cortana”
  16. 关于阿里云主机万网虚拟主机建立多个网站教程,很实用!
  17. 经营收款限制个人收款码,商户的个税会受影响吗?
  18. AirTag被不法分子滥用为恶意追踪工具?苹果:即将更新解决
  19. Python学习日记1
  20. Oracle索引(Index)创建使用

热门文章

  1. Atitit WatchService 使用和不能监控抓取到的解决 原因是生成速度太快,但处理速度慢,导致许多event 忽视了.. How to solu??? asyn to process
  2. Atitit java文件监控 WatchService 的使用 目录 1. // 处理下级多层目录 1 2. // 处理新目录 1 3. Code 2 常见问题对于 1.// 处理下级多层目
  3. Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2
  4. Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
  5. atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
  6. Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结
  7. paip.提升用户体验----记住用户名与自动登录
  8. (转)谁是全球资管规模之冠?
  9. 一款跑在云上的定制容器专属 OS
  10. 机器学习笔记(二十九):决策树、信息熵