设数组a是有n个元素的整数数组,从中找出最大和子序列

如题目所示,pascal语言编程题目;‘最大和子序列’是什么意思?意思是说数组中最大的两个数吗... 如题目所示,pascal语言编程题目;‘最大和子序列’是什么意思?
意思是说数组中最大的两个数吗
展开
 我来答
百度网友1f1d830
2010-06-28 · TA获得超过785个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:210万
展开全部
pascal语言不会,不过给你说下‘最大和子序列’,意思是在数组中找出几个连续的数据它们的和是最大的。 可能我没说清楚,给你举例吧
例: 一个数组:2,4,-33,34,45,-23,7
里面任意个数的连续数据都是这个数组的子序列
而34,45是和最大的
所以要查找的数组里必须有负数,不然就谈不上什么最大和子序列了(整个数组就是最大的)

不是两个数,是任意长度的,找出任意长度的子序列
假如:2,4,-33,34,45,-10,12,-2
这个的最大和子序列是:34,45,-10,12 理解的要素:1.任意长度 2.连续
敏兴利雨灵
2019-05-24 · TA获得超过4087个赞
知道大有可为答主
回答量:3037
采纳率:34%
帮助的人:211万
展开全部
const
n=10;
var
i,s,max,first,maxfirst,maxl:integer;
a:array[1..n]of
integer;
begin
for
i:=1
to
n
do
read(a[i]);
max:=a[1];s:=a[1];first:=1;maxfirst:=first;maxl:=0;
for
i:=2
to
n
do
begin
if
s<0
then
begin
s:=0;
first:=i;
end;
s:=s+a[i];
if
s>max
then
begin
max:=s;maxfirst:=first;maxl:=i-first;end;
end;
writeln('max=',max);
for
i:=maxfirst
to
maxfirst+maxl
do
write(a[i],'
');
writeln;
readln;
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tywuyang
2010-06-30
知道答主
回答量:13
采纳率:0%
帮助的人:7.5万
展开全部
var i,n,total,j,temp,ans:longint;
a,b:array[1..100000] of longint;
begin
read(n);
for i:=1 to n do
begin
read(a[i]);
b[i]:=a[i];
total:=total+a[i];
end;
for i:=2 to n do
begin
if a[i]<a[i-1]+a[i]
then a[i]:=a[i-1]+a[i];
if a[i]>ans
then ans:=a[i];
end;
for i:=2 to n do
begin
if b[i]>b[i-1]+b[i]
then b[i]:=b[i-1]+b[i];
if temp>b[i]
then temp:=b[i];
end;
if ans>total-temp
then writeln(ans)
else writeln(total-temp);
end.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式