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

Posted hqx-curiosity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解最大连续子序列和问题相关的知识,希望对你有一定的参考价值。

方法一

//求解最大连续子序列和问题
#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));

以上是关于求解最大连续子序列和问题的主要内容,如果未能解决你的问题,请参考以下文章

求连续序列的最大子序列和

求最大连续子序列之和c语言

求最短连续子序列

hdu1003 Max Sum最大连续子序列之和

dp连续子数组的最大和求解

动态规划:最大连续子序列乘积