30. 连续子数组最大和
题目
在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{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. 连续子数组最大和相关推荐
- php取数组中连续数,PHP实现求连续子数组最大和问题2种解决方法
本文实例讲述了PHP实现求连续子数组最大和问题2种解决方法.分享给大家供大家参考,具体如下: 问题描述 求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整 ...
- 数组的连续子数组最大和(首尾相连)
题目: 求一个循环数组的连续子数组的最大和. 解法: <编程之美>上给出一种方法: 1)求[0, n-1]的最大和: 2)如果跨过了n-1,则计算以n-1为尾部的最大子数组[i, n-1] ...
- 线性dp:DP9 环形数组的连续子数组最大和
描述 给定一个长度为 n 的环形整数数组,请你求出该数组的 非空连续子数组 的最大可能和 . 环形数组 意味着数组的末端将会与开头相连呈环状.例如,对于数组 [1,3,-5,2,-4]而言,第一个数 ...
- 【剑指offer】_05 连续子数组最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 【剑指offer-Java版】31连续子数组的最大和
连续子数组最大和,要求O(n)时间复杂度 思路:核心思想就是当前遍历数组的时候,遇到的是一个正数,计算这个正数加上已有的和得到一个新的和 如果这个新的和比当前的正数大,那么保留该和否者更新和为当前正数 ...
- 最大连续子数组和 动态规划_剑指Offer算法题 33:连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 【LeetCode】剑指 Offer 42. 连续子数组的最大和
[LeetCode]剑指 Offer 42. 连续子数组的最大和 文章目录 [LeetCode]剑指 Offer 42. 连续子数组的最大和 一.动态规划 一.动态规划 状态定义 设动态规划列表 dp ...
- 关于求已知整数数组的连续子数组的最大和的方法 ——基于一维数组的循环,甚至推广到二维情况上...
日期:2019.3.21 博客期:049 星期四 先二话不说,先交代码,今天训练的内容是"这个整数数组是允许开头和结尾结合在一起的",大家的思路都是扩大数组内容,就是将读入的数据存 ...
- 【IT笔试面试题整理】连续子数组的最大和
[试题描述]输入一个整型数组,数组里有正数也有负数.数组中一个或连续的多个整数组成一个子数组. 求所有子数组的和的最大值.要求时间复杂度O(n). 思路:当我们加上一个正数时,和会增加:当我们加上一个 ...
最新文章
- html判断是否有某个元素,jquery怎么判断元素是否存在?
- PHP算法对获取用,连接的字符串用in进行sql查询的php处理方法
- Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126
- 3 QM配置-质量计划配置-编辑特性属性的选择集
- java scjp考试_通过Java认证 SCJP 考试之精辟总结
- 常用网络测试的命令的实验报告计算机网络,实验二网络常用测试命令实验报告.docx...
- html符号中文含义大全特殊,中文标点符号大全名称
- 20181120 复习菜鸟教程中的node.js
- 显微镜下的大明——第一个故事
- Diablo3英雄榜-使用Volley和Gson来处理暴雪API的Json数据
- 如何为服务网格选择入口网关_理解服务网格和API网关之间的差异
- java ttf_java直接使用ttf字体,解决window和linux之间的差异
- daimayuan每日一题#851 Good Permutations
- 【数据库系统概念第七版(Database System Concepts 7th)配套SQL文件如何获取】
- HPUX系统启动后主机名为unknown的解决办法
- 通过配置环境变量解锁win+r新玩法
- Shell从小白牛到大黑牛你只差这一步
- 惠普m1136打印机驱动程序安装教程
- Arduino入门篇——继电器控制风扇
- 凡人一思考,上帝就发笑--庸人自扰
热门文章
- strlen函数在哪个头文件_第二十七中、字符串处理函数-strlen、strcat、strncat
- linux内核调度,Linux内核的三种调度策略
- python的pyaudio教程入门_『开发技巧』Python音频操作工具PyAudio上手教程
- python逐行写入文件_python逐行读写txt文件的实例讲解
- hnu2021小学期程序设计 电话号码
- frida hook java 函数_使用 Frida 来 Hook Java 类中的构造函数(构造函数带重载),获取解密后的js脚本...
- 软件工程导论 01章软件工程学概述
- Master of GCD 线段树区间更新
- SQLite基础知识学习
- 算法导论 练习10.4-5二叉树的遍历