其他分享
首页 > 其他分享> > 返回一个整数数组中最大子数组的和

返回一个整数数组中最大子数组的和

作者:互联网

题目要求如下:

 

解题思路:从第二项开始到数组末尾,比较该项与前一项相加后值是否变大,若变大,则将当前项的值置为他与前一项的和,否的话就不变。这样处理结束后,第n项的值,就是原数组前n项中的最大连续子数组的和,最后只要取处理完毕后的数组中最大的一项即可。

C++代码如下:

#include<iostream>
using namespace std;
void main()
{
	int s[100];
	int n,max;
	//输入数组长度
	cin >> n;
	for (int i = 0;i < n;i++)
	{
		//输入数组元素
		cin>> s[i];
	}

	//max初始化为s[0]
	max = s[0];
	for (int i = 1;i < n;i++)
	{
		//比较与前一项相加值是否会增大
		if ((s[i] + s[i - 1] )> s[i])
		{
		
			s[i] = s[i] + s[i - 1];
			
		}
		//更新max的值
		if (max < s[i])max = s[i];
	}
	cout << "最连续大子集和:" << max << endl;

}

  

 

标签:返回,int,max,cin,整数,++,数组,一项
来源: https://www.cnblogs.com/liuleliu/p/12362928.html