码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-03 23:32:36      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:style   csharp   ++   连续子序列   sharp   子序列和   for   div   span   

方法一

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

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

标签:style   csharp   ++   连续子序列   sharp   子序列和   for   div   span   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!