首页 > 其他 > 详细

求解最大连续子序列和问题

时间:2020-01-03 22:58:55      阅读:104      评论:0      收藏:0      [点我收藏+]

方法一

//求解最大连续子序列和问题
#include<stdio.h>
long maxSubSum(int a[],int n){
	int i,j,k;
	long maxSum=a[0],thisSum;
	for(i=0;i<n;i++){
		for(j=i;j<n;j++){
			thisSum=0;
			for(k=0;k<j;k++)
				thisSum += a[k];
			if(thisSum > maxSum)
				maxSum = thisSum;
		}
	}
}
int main(){
	int a[] = {-2,11,-4,13,-5,-2},n=6;
	printf("a序列的最大连续子序列的和:%d",maxSubSum(a,n));	
} 

方法二

#include<stdio.h>
int maxSubSum(int a[],int n){
	int i,j;
	long maxSum=a[0],thisSum;
	for(i=0;i<n;i++){
		thisSum=0;
		for(j=i;j<n;j++){
			thisSum += a[j];
			if(thisSum > maxSum)
				maxSum = thisSum;
		}
	}
}
int main(){
	int a[] = {-2,11,-4,13,-5,-2},n=6;
	printf("a序列的最大连续子序列的和:%d",maxSubSum(a,n));	
} 

  方法三

#include<stdio.h>
int maxSubSum(int a[],int n){
	int i,maxSum=0,thisSum=0;
	for(i=0;i<n;i++){
		thisSum += a[i];
		if(thisSum < 0)
			thisSum = 0;
		if(maxSum < thisSum)
			maxSum = thisSum;
	}
} 
int main(){
	int a[] = {-2,11,-4,13,-5,-2},n=6;
	printf("a序列的最大连续子序列的和:%d",maxSubSum(a,n));	
} 

  

#include<stdio.h>int maxSubSum(int a[],int n){int i,j;long maxSum=a[0],thisSum;for(i=0;i<n;i++){thisSum=0;for(j=i;j<n;j++){thisSum += a[j];if(thisSum > maxSum)maxSum = thisSum;}}}int main(){int a[] = {-2,11,-4,13,-5,-2},n=6;printf("a序列的最大连续子序列的和:%d",maxSubSum(a,n));

求解最大连续子序列和问题

原文:https://www.cnblogs.com/Hqx-curiosity/p/12146743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!