博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大连续子串
阅读量:6087 次
发布时间:2019-06-20

本文共 783 字,大约阅读时间需要 2 分钟。

问题:一个由正数、负数、0组成的序列中,求一个连续子序列,使他们之和最大

 

解一:暴力法,直接求出所有可能,找出最大值

1 MAX_SEQ_SUM( A, len ) 2     max = A[0] 3     max_b = max_e = 0 4  5     for i -> 0:len-1 6         sum = 0 7         for j->i:len-1 8             if j == i then sum = A[i] 9             else sum += A[i]10             if sum > max then11                 max = sum12                 max_b = i13                 max_e = j14     15     return max,max_b,max_e

复杂度为:O(n^2)

 

解法2:遍历数组时记录当前和,如果和大于最大值,则记录,如果和小于0,则从当前元素重新计算

MAX_SEQ_SUM(A,len)    sum = max = A[0]    max_b = max_e = 0    for i -> 1:len        if sum < 0 then sum = A[i] ; b = e = i;        else  sum += A[i] ; e = i;        if sum < max then  max = sum ; max_b = b; max_e = e;    return max,max_b,max_e

复杂度为:O(n)

转载于:https://www.cnblogs.com/stormli/p/max_seq_sum.html

你可能感兴趣的文章
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>