2、累加和最大的子序列、累加和最大的子数组

1、累加和最大的子序列

def maxsub(lists):
    cur=0
    maxsum=lists[0]
    for i in lists:
        if cur<0:
            cur=0
        cur+=i
        if cur>maxsum:
            maxsum=cur
    return maxsum

2、累加和最大的子数组
######## n
########
########
m
O(n2*m)
进一步可以取n和m中较小的数作为平方项。进一步减小复杂度。字数组数目是

def maxsub(mat):
    maxsum=float("-inf") #min
    for i in xrange(len(mat[0])):
        temprow = []
        for j in xrange(i,len(mat[0])):
            if temprow==[]:
                temprow=mat[j]
            else:
                temprow=map(lambda (a,b):a+b, zip(temprow,mat[j]))
            print temprow
            cur=0
            for item in temprow:
                if cur<0:
                    cur=0
                cur+=item
                if cur>maxsum:
                    maxsum=cur
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,243评论 0 12
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 拆书训练营17:成为幸运者 拆页来源:《正能量2》 拆书目标:学会幸运者和不幸者处理事情的不同方式 R阅读原文 这...
    杨树叶儿阅读 356评论 0 0
  • 这是我做iOS 以来用过的所有的第三方,都挺方便的。今天拿出来共享 如果哪位大神有其他的,欢迎交流,学习。 以下是...
    万忍阅读 501评论 0 0
  • 1:再好也有底线! 2、尊重!不随意翻看朋友手机!不拆朋友快递!等等..... 3、不要问有多少存款! 4、不随意...
    华溢枝阅读 430评论 0 0