首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一个由正数组成的序列a1,a2,…,an,在这个序列中的元素既有正整数也有负整数。我们定义SUMk,l=ak+ak+1+……+al为当前序列的子段之和。如果在某一子段上全部都是负数,我们定义其子段之和为0。如果子段之和为正整数,那么就保留其为子段之和。
已知一个由正数组成的序列a1,a2,…,an,在这个序列中的元素既有正整数也有负整数。我们定义SUMk,l=ak+ak+1+……+al为当前序列的子段之和。如果在某一子段上全部都是负数,我们定义其子段之和为0。如果子段之和为正整数,那么就保留其为子段之和。
admin
2014-07-18
67
问题
已知一个由正数组成的序列a
1
,a
2
,…,a
n
,在这个序列中的元素既有正整数也有负整数。我们定义SUM
k,l
=a
k
+a
k+1
+……+a
l
为当前序列的子段之和。如果在某一子段上全部都是负数,我们定义其子段之和为0。如果子段之和为正整数,那么就保留其为子段之和。请设计算法求出序列中的最大子段之和。要求:
(1)给出算法的主要思想;
(2)写出算法的实现函数;
(3)总结所用算法的时间和空间复杂度。
选项
答案
(1)本题可以逐次计算每一段的子段之和,然后进行比较,最终得出子段和最大的子段,求出该子段的开始位置和结束为止。 (2)算法的实现过程如下: int Maxsum(int n,int*a,int&besti,int &bestj){ /**本算法用于求出最大子段之和 *返回:最大子段和 */ int max=0,i,j,tj,tmax,flag,sum; for(i=1;i<=n;i++){ flag=0: sum=0: tmax=*(a+i);//tmax暂时保存子段和 for(j=i;j<=n;j++){ if(flag= =0){//N断是否都是负数 if(*(a+j)>0){ flag=1;//flag=1时,表示该子段的元素并不是全都是负数 tj=j-1; }else{ tj=j; tmax=0; //按照定义全负数之和为0 } } SHill=sum+*(a+j); if(sum>tmax){ //记录下子段和 tmax=sum; fj=j; } } if(tmax>=max){ //记录下更大的子段和 max=tmax: besti=i; bestj=tj; } } return max: (3)时间复杂度:O(n
2
),空问复杂度与数组个数n无关,因此是0(1)。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/94xi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述雅典民主共和国的形成。
试总结苏联二三十年代社会主义建设的特点、成就及存在的问题
周王室的两大官僚系统是()。
文艺复兴时期,系统提出了国家主权理论的政治思想家是()。
二战后主要资本主义国家经济恢复和发展的杠杆是()①政府采取宏观调控政策②发展国家垄断资本主义③充分利用科技成果④加强国际经济联系
三大战役的先后顺序是()
试编写一个非递归算法,实现求以二叉链表存储的二叉树中q结点的祖先。
序列的“中值记录”指的是:如果将此序列排序后,它是第n/2个记录。试写出一个求中值记录的算法。
下面是关于目前流行的PC机主板的叙述:I.主板上通常包含微处理器插座(或插槽)和芯片组Ⅱ.主板上通常包含ROMBIOS和存储器(内存条)插座Ⅲ.主板上通常包含PCI和AGP总线插槽Ⅳ.主板上通常包含IDE连接器其
通常所说的32位微处理器是指()。
随机试题
采用熔断器做短路保护时,其熔体额定电流应小于等于明敷绝缘导线长期连续负荷允许载流量的()。
简单商品流通和发达商品流通的区别有()。
女,45岁。确诊为混合型颈椎病3年,未予积极治疗,近来左肩关节疼痛,不能梳头,左肩外展、后伸、外旋严重受限,三角肌轻度萎缩,肱二头肌长短头肌腱及肩关节外侧均有明显压痛。肩痛的原因是
对肱骨外上髁炎有诊断意义的检查是()
项目团队成员主要的沟通要求是()。
“建筑工程一切险”规定保险公司承担保险责任的范围包括()的损失。
建设单位管理人员工资应计入()。
关系表中的每一横行称为一个()。
把存储在硬盘上的程序传送到指定的内存区域中,这种操作称为()。
Readthearticlebelowaboutsmallhigh-techfirms.Foreachquestion31—40,writeonewordinCAPITALLETTERSonyourAnswerSh
最新回复
(
0
)