Lintcode42 Maximum Subarray II solution 题解
【题目描述】
Given an array of integers, find two non-overlapping subarrays which have the largest sum.The number in each subarray should be contiguous.Return the largest sum.
Notice:The subarray should contain at least one number
给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。
注意:子数组最少包含一个数
【题目链接】
http://www.lintcode.com/en/problem/maximum-subarray-ii/
【题目解析】
严格来讲这道题这道题也可以不用动规来做,这里还是采用经典的动规解法。Maximum Subarray 中要求的是数组中最大子数组和,这里是求不相重叠的两个子数组和的和最大值,做过买卖股票系列的题的话这道题就非常容易了,既然我们已经求出了单一子数组的最大和,那么我们使用隔板法将数组一分为二,分别求这两段的最大子数组和,求相加后的最大值即为最终结果。隔板前半部分的最大子数组和很容易求得,但是后半部分难道需要将索引从0开始依次计算吗?NO!!! 我们可以采用从后往前的方式进行遍历,这样时间复杂度就大大降低了。
源码分析:前向搜索和逆向搜索我们使用私有方法实现,可读性更高。注意是求非重叠子数组和,故求maxTwoSub时i 的范围为0, size - 2, 前向数组索引为 i, 后向索引为 i + 1.
复杂度分析:前向和后向搜索求得最大子数组和,时间复杂度 O(2n)=O(n)O(2n)=O(n)O(2n)=O(n), 空间复杂度 O(n)O(n)O(n). 遍历子数组和的数组求最终两个子数组和的最大值,时间复杂度 O(n)O(n)O(n). 故总的时间复杂度为 O(n)O(n)O(n), 空间复杂度 O(n)O(n)O(n).
【参考答案】
http://www.jiuzhang.com/solutions/maximum-subarray-ii/
转载于:https://blog.51cto.com/12975124/1942839
相关文章:

const用法详解
面向对象是C的重要特性. 但是c在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读 const int i5; int j0; ... ij; //非法,导致编译错误 ji; //合法 2. 必…
Matlab编程与数据类型 -- continue、break和return语句
本微信图文详细介绍了Matlab中的continue、break和return语句。

mysql 修复_修复崩溃的Mysql
在mysql的配置文件my.cnf里找到 [mysqld]字段下,添加 innodb_force_recovery 1如果innodb_force_recovery 1不生效,则可尝试2——6几个数字然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成…

window.open(url?param=+paramvalue) 服务端 乱码问题解决
window.open("url?param"paramvalue)传递参数出现乱码,在客房端显示是正常的,可是到服务端就是乱码。 1. 利用一个js在客户端转码的函数,escape(str);但是传到服务端仍然是乱码,所以必须在服务端进行解码。 2. 服务端执…
Matlab编程与数据类型 -- 数据类型概述
本微信图文详细介绍了Matlab中的数据类型,数值型和逻辑型举例介绍,其它类型在相应图文进行介绍。

初识mysql数据字段属性_初识mysql
# 经典sql语句 创建数据库- CREATE DATABASE database_name; 删除数据库- DROP DATABASE database_name; 创建备份数据库- USE masterEXEC sp_addupdevice disk,testBack ,c:\xxx\xxx.dat 开始备份- BACKUP DATABASE pubs TO testBack;--- 创建表- 创建新表 create table tab_n…

ceph存储引擎bluestore解析
原文链接:http://www.sysnote.org/2016/08/19/ceph-bluestore/ ceph后端支持多种存储引擎,以插件式的方式来进行管理使用,目前支持filestore,kvstore,memstore以及最新的bluestore,目前默认使用的filestor…
Matlab编程与数据类型 -- 字符型数组
本微信图文详细介绍了Matlab中的字符串类型。

最近想做个音乐共享的软件
准备分如下几部分: 1.配置文件xml读写 2.播放器部分:开始准备用mediaplay做,发现有个开源的播放器,可以考虑 3.网络部分:主要是种子搜索和更新 准备召唤有兴趣的达人一起开发转载于:https://www.cnblogs.com/donneymin…

精通mysql_《深入精通Mysql(五)》实战:Mysql实现主从复制
深入精通Mysql系列其他文章推荐:一、前言随着应用业务数据不断的增大,应用的响应速度不断下降,在检测过程中我们不难发现大多数的请求都是查询操作。此时,我们可以将数据库扩展成主从复制模式,将读操作和写操作分离开来…

一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目...
接触软件行业很多年有些年头了,展望过去的岁月,总想写点儿东西,总结总结,我也不怕拍砖了,曾经也换过很多公司、跳过很多槽,现在想想,总结出来:“天下的乌鸦是一样黑的”,…
Matlab编程与数据类型 -- 奇数阶魔方矩阵的编程
本微信图文详细介绍了利用Matlab实现奇数阶魔方矩阵的编程。

Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)
2019独角兽企业重金招聘Python工程师标准>>> 本文节选自《Netkiller Database 手札》 第 63 章 Apache Hive 目录 63.1. 安装 Apache Hive 63.1.1. MySQL 63.1.2. Hadoop 63.1.3. Hive 63.1.4. 启动 Hive 63.1.5. 访问 Hive 63.2. 管理 Hive 63.2.1. 表管理 63.2.1.…

mysql的profile_Mysql分析-profile详解
一。前言当我们要对某一条sql的性能进行分析时,可以使用它。Profiling是从 mysql5.0.3版本以后才开放的。启动profile之后,所有查询包括错误的语句都会记录在内。关闭会话或者set profiling0 就关闭了。(如果将profiling_history_size参数设置为0&#x…

2003網域升級到2008網域以及遷移DNS
2003網域升級到2008網域以及遷移DNS 如圖這是我們現在的拓撲,cc從現用的LCS2008網域升級到2008網域,並一步步截圖給大家示範說明。隨便抓了臺虛擬機,是以前做LCS試驗用的,現在不用了,正好給大家示範2003升級到2008網域…

FPGA管脚约束
Edit → language templates : 打开即可查看基本语法。 一、xilinx中的约束文件 1、约束的分类 利用FPGA进行系统设计常用的约束主要分为3类。 (1)时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条件&…
Matlab数据的可视化 -- 线性图函数plot
本篇微信图文主要介绍Matlab数据可视化方面的内容。

日志文件和mysql同步到kafka_logstash_output_kafka:Mysql同步Kafka深入详解
0、题记实际业务场景中,会遇到基础数据存在Mysql中,实时写入数据量比较大的情景。迁移至kafka是一种比较好的业务选型方案。而mysql写入kafka的选型方案有:方案一:logstash_output_kafka 插件。方案二:kafka_connector…

TPYBoard自制微信远程智能温湿度计
2019独角兽企业重金招聘Python工程师标准>>> 智能时代一夜间什么都能远程了。创业者想着如何做智能产品,如何做远程控制。DIY爱好者也想着如何自制各种奇妙的工具。这里和大家一起学习制作一款廉价的智能温湿度计。说它廉价是因为共计花费不过40元&#…
Matlab数据的可视化 -- 简易线性函数图
本篇微信图文主要介绍Matlab数据可视化方面的内容。

浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)
Python--使用Pyqt5实现简易浏览器(最新版本测试过)博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!准备环境首先我们需要的是我们的开发环境&…

JS 中 URL 编码的问题.
URL 编码 为什么要对 URL 编码 1. 避免解析错误 我们的 queryString 的形式是使用 ?开始, keyvalue 传递参数, key-value pairs 之间使用 & 连接.比如: ?postid5038412&t1450591802326服务器会 根据 & 解析 key-value pairs 根据 解析 key,value 那么如果 key或…

通用权限管理模块系列——需求分析——列举需求
以RBAC为理论基础 以低耦合为设计原则 我们计划设计一个独立的权限模块 碰到一些难题,后面另外开文章来讨论 本文主要是列举目前收集到的权限方面的需求信息,如果各位有能提供的用例,请不吝赐教。 各种需求都是从网络或零碎项目里提取的&…
Matlab数据的可视化 -- 散点图
本篇微信图文主要介绍Matlab数据可视化方面的内容。scatter

koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)
Koa 搭建服务新建一个文件夹 koa_server,进入后cnpm i -S koa会生成 node_modules 依赖包,以及 package.json创建文件 server.js,并写入const Koa require(koa);const app new Koa();app.use( async ( ctx ) > {ctx.body hello koa2})a…

Python CRC32 文件校验
binascii.crc32(s [,crc])返回CRC32校验。参数crc指定初始值用于循环。例如:Code>>> import binascii>>> crc binascii.crc32(spam)>>> binascii.crc32( and eggs, crc)739139840>>> binascii.crc32(spam and eggs)739139840C…

国家智慧城市战略实施 保温材料等建材万亿市场待挖掘
近年来,国家多部委联合发布《国家新型城镇化规划(2014—2020)》《关于促进智慧城市健康发展的指导意见》,提出到2020年建成一批特色鲜明的智慧城市。国家智慧城市建设与发展上升为国家战略。2014年中国智慧城市的市场规模达到800多亿元,其中不…

Matlab数据的可视化 -- 极坐标图及其与直角坐标图的转换
本篇微信图文主要介绍Matlab数据可视化方面的内容。polar、pol2cart、cart2pol

mysql 主从复制 性能_zabbix监控mysql各项性能,主从复制
######################################################监控mysql(默认监控模板不能用,再agentd.conf开启自定义key,自己编写脚本)在zabbix_agentd.conf尾部添加(注意相关文件路径,以及脚本权限等问题)vim zabbix_agentd.confUserParameter…

SQL Server基础知识之:设计和实现视图
设计和实现视图可谓是数据库物理设计中的一个非常重要的步骤。从一般意义上说,设计和实现视图应该遵循下面的一些建议和原则。 以下内容摘在文档,我对某些重点进行了补充说明(红色部分) 只能在当前数据库中创建视图。 但是&#x…