| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 691 人关注过本帖
标题:[求助]最小和问题
取消只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
结帖率:50%
收藏
 问题点数:0 回复次数:2 
[求助]最小和问题
问题描述:给定整型数组a[n](n>0),要求数组a[n]中相邻元素的最小和.
例如:1 -2 3 -1 -5 -4 1 0 -2 5 -1
则a中相邻元素的最小和为(-1)+(-5)+(-4)+1+0+(-2)=-11.

问题要求:求一时间复杂度为O(n)算法.谢谢!

[此贴子已经被作者于2006-9-17 23:04:48编辑过]

搜索更多相关主题的帖子: 元素 
2006-09-17 23:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

/*是这样吗?太感谢你了,谢谢...*/
#include<stdio.h>
#define N 50
int Min(int a[],int n)
{
int i=1,min=0,f[N];
f[0]=a[0];
min=f[0];
while(i<n)
{
if(f[i-1]>0)
{
f[i]=a[i];
}
else
{
f[i]=a[i]+f[i-1];
}
if(f[i]<min)
{
min=f[i];
}
//printf("%d\n",f[i]);
i++;
}
return(min);
}

int main()
{
int a[N]={1,-2,3,-1,-5,-4,1,0,-2,5,-1};
printf("min=%d\n",Min(a,11));
return(0);
}


倚天照海花无数,流水高山心自知。
2006-09-18 09:17
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

后来想到了.

#include<stdio.h>
#define N 50
int Min(int a[],int n)
{
int i=1,min=0,f;
f=a[0];
min=f;
while(i<n)
{
if(f>0)
{
f=a[i];
}
else
{
f=a[i]+f;
}
if(f<min)
{
min=f;
}
//printf("%d\n",f);
i++;
}
return(min);
}

int main()
{
int a[N]={1,-2,3,-1,-5,-4,1,0,-2,5,-1};
printf("min=%d\n",Min(a,11));
return(0);
}




倚天照海花无数,流水高山心自知。
2006-09-18 12:34
快速回复:[求助]最小和问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011552 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved