leetcode1031
class Solution(object):
def getMaxByCount(self,A,maxlen):
curmax = 0
curmax = sum(A[:maxlen])
bigmax = curmax
n = len(A)
for i in range(maxlen,n):
curmax = curmax-A[i-maxlen]+A[i]
if curmax > bigmax:
bigmax = curmax return bigmax def maxSumTwoNoOverlap(self, A: 'List[int]', L: int, M: int) -> int:
minlen = min(L,M)
maxlen = max(L,M)
n = len(A)
allmax = self.getMaxByCount(A,L+M) bigmax = sum(A[:maxlen])
litmax = self.getMaxByCount(A[maxlen:],minlen)
allmax = max(allmax,bigmax+litmax) for i in range(maxlen,n):
bigmax = bigmax - A[i-maxlen] + A[i]
lefttag = i-maxlen+1
A1 = A[0:lefttag]
litlen1 = self.getMaxByCount(A1,minlen)
righttag = i
A2 = A[righttag+1:]
litlen2 = self.getMaxByCount(A2,minlen)
litmax = max(litlen1,litlen2)
allmax = max(allmax,bigmax+litmax)
return allmax
getMaxByCount()方法是在A中选择连续maxlen长度的最大和。
先求L+M个连续区间的最大值,作为最基本的选择,记为allmax。
再进行一次遍历(从maxlen~n),每次选择maxlen个(L和M中更大的那个数)长度的区间,计算这个区间的和,记为bigmax。
然后将原数组一分为二,分别计算剩下的两个子集连续minlen个(L和M中更小的那个数)长度的区间的和,分别记为litlen1,litlen2。
litlen1和litlen2的更大的和,作为minlen长度的最大和,记为litmax。
每次循环内部,将allmax与bigmax+litmax进行比较,allmax中保留更大的值。
循环完毕,allmax就是最大和。
leetcode1031的更多相关文章
- [Swift]LeetCode1031. 两个非重叠子数组的最大和 | Maximum Sum of Two Non-Overlapping Subarrays
Given an array A of non-negative integers, return the maximum sum of elements in two non-overlapping ...
随机推荐
- servlet邮箱激活验证实例含代码
也有很多人本来有机会的,他们都拒绝了,不想让自己太累,太麻烦.或者中途被情绪所左右,半途而废了. 成长是有代价的,同样悠闲也是有代价的. 流程: 用户填写相关信息,点击注册按钮 系统先将用户记录保存到 ...
- Hadoop学习笔记03_Hive练习
Apache Hive是提供了一种数据映射去读取文本数据,以及提供了类SQL的语句来执行MapReduce. 也就是一种更简化操作的MR. 之前的练习是跟着视频学的hive-1.2.2 而这几天自己练 ...
- 戴尔R710服务器安装系统——配置raid
一,内存二,硬盘(分区,数据量大小)三,电源线,网络线四,raid(raid0,raid1,raid5) 从这里开始 1.进入系统时不用管,默认进入即可 2.在读完内存消息之后,开始读取磁盘消息,在出 ...
- day50 django第一天 自定义框架
主要内容: 1.http协议 2.web框架 3.Django 1.http协议 1.1 http协议的简介 超文本传输协议(英文:Hyper Text Transfer Protocol,HTTP) ...
- Day 07 字符编码,文件操作
今日内容 1.字符编码:人识别的语言与机器识别的语言转换的媒介 2.字符与字节:字符占多少字节,字符串转换 3.文件操作:操作硬盘的一块区域 字符编码 重点:什么是字符编码 人类能识别的字符等高级标识 ...
- Spark资源配置(核数与内存)
转载自:http://blog.csdn.net/zrc199021/article/details/54020692 关于所在节点核数怎么看? =========================== ...
- mongodb集群配置分片集群
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- 基于CRF工具的机器学习方法命名实体识别的过
[转自百度文库] 基于CRF工具的机器学习方法命名实体识别的过程 | 浏览:226 | 更新:2014-04-11 09:32 这里只讲基本过程,不涉及具体实现,我也是初学者,想给其他初学者一些帮助, ...
- [转]C#程序性能优化
C#程序性能优化 1.显式注册的EvenHandler要显式注销以避免内存泄漏 将一个成员方法注册到某个对象的事件会造成后者持有前者的引用.在事件注销之前,前者不会被垃圾回收. private v ...
- ORM操作 数据库外键 一对多
创建外键: from django.db import models class usergroup(models.Model): uid = models.AutoField(primary_key ...