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

例如,输入的数组为 {1, -2, 3, 10, -4, 7, 2, -5},和最大的子数组为 {3, 10, -4, 7, 2},因此输出为该子数组的和为 18.

最开始的思考是分四种情况(f 表示的也是数组,f[i]表示取到当前位置 i 时的连续子数组的最大和):

  • f[i-1]:为正,data[i]:为正,f[i] = f[i-1]+data[i]
  • f[i-1]:为负,data[i]:为正,f[i] = data[i]
  • f[i-1]:为正,data[i]:为负,f[i] = f[i-1]+data[i]
  • f[i-1]:为负,data[i]:为负,f[i] = data[i]

所以,其实 f[i] 与 data[i] 的取值无关,仅与 f[i-1]的取值有关;

def sis_sum(seq):l = len(seq)f = [0]*lfor i in range(l):if i == 0 or f[i-1] <= 0:f[i] = seq[i]if f[i-1] > 0:f[i] = f[i-1] + seq[i]return max(f)

【剑指 offer】(31)—— 连续子数组的最大和(动态规划)相关推荐

  1. 【LeetCode】剑指 Offer 42. 连续子数组的最大和

    [LeetCode]剑指 Offer 42. 连续子数组的最大和 文章目录 [LeetCode]剑指 Offer 42. 连续子数组的最大和 一.动态规划 一.动态规划 状态定义 设动态规划列表 dp ...

  2. 剑指 Offer 42. 连续子数组的最大和(官解)

    14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算 ...

  3. LeetCode -- 剑指 Offer 42. 连续子数组的最大和

    剑指 Offer 42. 连续子数组的最大和 线性 DP 题. 针对于数组nums[i] 而言,以它为结尾的子数组分两种情况:(题目限制:必须是连续数组) num[i] 自身作为独立子数组:f[i] ...

  4. 剑指 Offer 42. 连续子数组的最大和

    摘要 剑指 Offer 42. 连续子数组的最大和 一. 动态规划分析 1.1 动态规划思路分析 假设nums数组的长度是n,下标从0到n−1.我们用 f(i)代表以第i个数结尾的连续子数组的最大和, ...

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

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

  6. 剑指offer:连续子数组的最大和

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

  7. Leetcode 剑指 Offer 42. 连续子数组的最大和 (每日一题 20211014)

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

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

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

  9. 【剑指offer】连续子数组的最大和(未完待续。。。)

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

  10. 剑指 Offer 42. 连续子数组的最大和java

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

最新文章

  1. 独木舟上的旅行http://acm.nyist.net/JudgeOnline/problem.php?pid=71
  2. Ubuntu系统环境变量配置文件(转)
  3. WinAPI: Ellipse - 绘制椭圆
  4. 在 net send 命令中实现换行(信使服务)
  5. 继承Comparable接口来实现排序
  6. tms脚本演示代码之一
  7. springmvc常用注解
  8. 首次适应算法_CVPR 2020丨?商汤TSD目标检测算法获得Open Images冠军
  9. android md 颜色,安卓MD(Material Design)规范
  10. setw()(转载)
  11. d3d9 抓取windows屏幕
  12. 面试高级测试工程师修炼之接口测试平台开发
  13. 软件工程简答题和应用题
  14. k-means算法概述
  15. jquery和prototype冲突解决
  16. 常见网络延迟测量方法
  17. BZOJ1778: [Usaco2010 Hol]Dotp 驱逐猪猡
  18. ios 表情符号 键盘_使用iOS键盘键入时,表情符号在NSAttributedString中不显示,在Android上键入时表示...
  19. VR虚拟现实心理脱敏训练系统整体解决方案
  20. 【Tableau Desktop 企业日常技巧12】Tableau安装版本要求和配置 信息

热门文章

  1. 计算机拆装与维修技能综述,综述虚拟机在计算机硬件组装与维护教学中的应用...
  2. java 阻塞队列 BQ_阻塞队列 BlockingQueue的使用(二)
  3. mysql排序优化_Mysql 排序优化
  4. python写透视挂_python opencv 透视变换
  5. 第八届蓝桥杯第四题方格分割
  6. Delphi Open Tools Api实例研究(二)
  7. 计算机装配调试员培训内容.doc,电子计算机装配调试员理论培训文档.doc
  8. java 同步和异步_知道什么叫同步和异步吗?
  9. 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
  10. 基于Laravel+VueJS实战开发WebAPP