首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设一个整形一维数组里有n(n>1)个整数,在这些整数中可以有正数也可以有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。设计一个在时间和空间两方面尽可能高效的算法,输出所有子数组的和的最大值。例如一维数组中的整数为1,-2,3,10,
设一个整形一维数组里有n(n>1)个整数,在这些整数中可以有正数也可以有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。设计一个在时间和空间两方面尽可能高效的算法,输出所有子数组的和的最大值。例如一维数组中的整数为1,-2,3,10,
admin
2017-11-20
50
问题
设一个整形一维数组里有n(n>1)个整数,在这些整数中可以有正数也可以有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。设计一个在时间和空间两方面尽可能高效的算法,输出所有子数组的和的最大值。例如一维数组中的整数为1,-2,3,10,-4,7,2,-5,则和最大的子数组为3,10,-4,7,2,该子数组的和为18。要求:
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法实现如下: void FindGreatestSumOfSubArray(int a[],n) { int sum; //sum用来记录子数组的和 int max; //max用来记录最大子数组的和 int i; max=a[0]; //将max的值初始化为数组中的第一个元素的值 sum=0, //将sum的值初始化为0 for(i=0;i<n;i++) { sum+=a[i]; //计算子数组的和 if(sum>max) //如果当前计算的子数组的和比之前记录的最大子数组的和大的话,则 更新max的值 max=sum; if(sum<0) //如果当前计算的子数组的和小于0,则将sum置0 sum=0; } printf(’’%d\n’’,max); }
解析
转载请注明原文地址:https://kaotiyun.com/show/SNRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列关于国际联盟及其活动的叙述,正确的是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
下列有关《布列斯特和约》的说法中,错误的一项是()。
关于美国内战,不正确的说法是()。
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
16世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
随机试题
A.大肠杆菌B.苍白螺旋体C.淋病双球菌D.单纯疱疹病毒E.人类乳头瘤病毒
A.apoAⅠB.aopAⅡC.apoB100D.apoCⅠE.apoCⅡ
建设工程立项阶段建设监理工作的主要内容不包括( )。
投机者、套利者是期货市场的风险承担者。( )
我国的财政收入由()构成。
《红楼梦》第十四回讲到王熙凤协理宁国府,凤姐年纪轻轻,却能依靠“奖罚分明”把宁国府管理得井井有条。从管理学上看,王熙凤管理宁国府主要基于:
根据马克思主义法学观,原始社会的氏族习惯不属于法律的范畴,其主要原因有()。(2012年多选47)
在操作系统中引入并发可以提高系统效率。若有两个程序A和B,A程序执行时所做的工作按次序需要占用CPU:5秒,DEV1:5秒,CPU:10秒,DEV2:10秒,CPU:10秒;B程序执行时所作的工作按次序需要占用DEV1:10秒,CPU:10秒,DEV2:5
在面向对象方法中,不属于“对象”基本特点的是
Difficult______thetaskwas,theymanagedtoaccomplishitintime.
最新回复
(
0
)