题目

在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和

解答

动态规划

dp[i]表示下标为i时的最大连续子序列和。注意,这里的dp[i]是一定会包含array[i]的,这满足了连续的条件。但是,若dp[i]是负值,那么dp[i]则不会是正确结果。

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

因此,还需要

ret = max(ret, dp[i]);

但是你又不能写成下面这样,无法满足连续的条件。

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

代码

class Solution {public:int FindGreatestSumOfSubArray(vector<int> array) {int n = array.size();int *dp = (int*)malloc(n*sizeof(int));memset(dp, 0, n*sizeof(int));dp[0] = array[0];int ret = -0x7fffffff;for(int i = 1; i < n; i++){dp[i] = max(dp[i-1]+array[i], array[i]);ret = max(ret, dp[i]);}free(dp);return ret;}
};

30. 连续子数组最大和相关推荐

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

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

  2. 数组的连续子数组最大和(首尾相连)

    题目: 求一个循环数组的连续子数组的最大和. 解法: <编程之美>上给出一种方法: 1)求[0, n-1]的最大和: 2)如果跨过了n-1,则计算以n-1为尾部的最大子数组[i, n-1] ...

  3. 线性dp:DP9 环形数组的连续子数组最大和

    描述 给定一个长度为 n 的环形整数数组,请你求出该数组的 非空连续子数组 的最大可能和 . 环形数组 意味着数组的末端将会与开头相连呈环状.例如,对于数组 [1,3,-5,2,-4]而言,第一个数  ...

  4. 【剑指offer】_05 连续子数组最大和

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

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

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

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

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

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

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

  8. 关于求已知整数数组的连续子数组的最大和的方法 ——基于一维数组的循环,甚至推广到二维情况上...

    日期:2019.3.21 博客期:049 星期四 先二话不说,先交代码,今天训练的内容是"这个整数数组是允许开头和结尾结合在一起的",大家的思路都是扩大数组内容,就是将读入的数据存 ...

  9. 【IT笔试面试题整理】连续子数组的最大和

    [试题描述]输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组. 求所有子数组的和的最大值.要求时间复杂度O(n). 思路:当我们加上一个正数时,和会增加:当我们加上一个 ...

最新文章

  1. html判断是否有某个元素,jquery怎么判断元素是否存在?
  2. PHP算法对获取用,连接的字符串用in进行sql查询的php处理方法
  3. Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126
  4. 3 QM配置-质量计划配置-编辑特性属性的选择集
  5. java scjp考试_通过Java认证 SCJP 考试之精辟总结
  6. 常用网络测试的命令的实验报告计算机网络,实验二网络常用测试命令实验报告.docx...
  7. html符号中文含义大全特殊,中文标点符号大全名称
  8. 20181120 复习菜鸟教程中的node.js
  9. 显微镜下的大明——第一个故事
  10. Diablo3英雄榜-使用Volley和Gson来处理暴雪API的Json数据
  11. 如何为服务网格选择入口网关_理解服务网格和API网关之间的差异
  12. java ttf_java直接使用ttf字体,解决window和linux之间的差异
  13. daimayuan每日一题#851 Good Permutations
  14. 【数据库系统概念第七版(Database System Concepts 7th)配套SQL文件如何获取】
  15. HPUX系统启动后主机名为unknown的解决办法
  16. 通过配置环境变量解锁win+r新玩法
  17. Shell从小白牛到大黑牛你只差这一步
  18. 惠普m1136打印机驱动程序安装教程
  19. Arduino入门篇——继电器控制风扇
  20. 凡人一思考,上帝就发笑--庸人自扰

热门文章

  1. strlen函数在哪个头文件_第二十七中、字符串处理函数-strlen、strcat、strncat
  2. linux内核调度,Linux内核的三种调度策略
  3. python的pyaudio教程入门_『开发技巧』Python音频操作工具PyAudio上手教程
  4. python逐行写入文件_python逐行读写txt文件的实例讲解
  5. hnu2021小学期程序设计 电话号码
  6. frida hook java 函数_使用 Frida 来 Hook Java 类中的构造函数(构造函数带重载),获取解密后的js脚本...
  7. 软件工程导论 01章软件工程学概述
  8. Master of GCD 线段树区间更新
  9. SQLite基础知识学习
  10. 算法导论 练习10.4-5二叉树的遍历