数组连续子数组的最大和

原创 2015年11月18日 22:45:53

问题的输入是具有n个浮点数的向量x,输出是输入向量的任何连续子向量中的最大和

总体思想来源于编程珠玑第二版第八章

#include <iostream>
#include <algorithm>
using namespace std;
const int n = 10;
//此乃解决输入连续子向量中的最大和的效率最高的一种算法,动态规划法;当所有的输入都是负数时,总和
//最大的子向量是空向量,总和为0
//关键理解:maxendinghere
int main()
{
	int arr[n] = {31,-41,59,26,-53,58,97,-93,-23,84};
	int maxsofar = 0;
	int maxendinghere = 0;
	for (int i = 0; i < n; ++i) {
		//maxendinghere是结束位置为i-1的最大子向量的和,若加上x[i]之后的结果依然为
		//正值,则该赋值语句将maxendinghere增大x[i];若加上x[i]之后的结果为负值,则将
		//maxendinghere重新设为0
		maxendinghere = max(maxendinghere+arr[i], 0);
		maxsofar = max(maxendinghere, maxsofar);
	}
	cout << maxsofar << endl;
	int a;
	cin >> a;
}


相关文章推荐

连续子数组的最大和

  • 2015年12月23日 15:11
  • 67KB
  • 下载

剑指offer---连续子数组的最大和、第一个只出现一次的字符的位置

举几个例子: 数组:[1, -2, 3, 5, -3, 2]应返回8. 数组:[-9, -2, -5, -3, -4]应返回-2. public class FindGreate...

MIT:算法导论——2.渐近符号、递归及解法_和连续子数组的最大和、主方法/主定理求时间复杂度

#if 0 三种求解递归式的方法,即算法的O渐近界的方法: (1)代入法:猜测一个界,然后用 数学归纳法证明 这个界正确。 (2)递归树法:将递归式转换为一棵递归树。其结点表示不同层次的递归调用...

【剑指Offer学习】【面试题31:连续子数组的最大和】

题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。例子说明: 解题思路: 解法一:举例分析数组的规律 解法二...

三种方法求最大连续子数组的和

转载自:http://blog.csdn.net/ns_code/article/details/20942045 这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题...
  • fso918
  • fso918
  • 2014年03月19日 10:43
  • 867

《剑指offer》:[31]连续子数组的最大和及子序列的值

题目:输入一个整形数组,数组里有整数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值和其序列的值。要求时间复杂度为O(N)。例如输入数组为{1,-2,3,10,-4,7,2,...
  • gogoky
  • gogoky
  • 2016年06月10日 19:05
  • 981

hdu1231 连续子数组最大和(分治,动态规划)

1)开心,学习伪码之后,自己敲完的代码;发现《导论》在纯粹的算法知识方面比紫书讲的更细致,更好懂一些。 分治策略,旨在将原先的大问题不断分解成规模小的问题,比如最大连续子数组,以中间界线分三部分,左边...

一个数组中找出连续子向量的最大和 分治算法 扫描算法O(n)

算法设计艺术输入具有n个整数的向量data,输出向量的任意连续子向量的最大和, 当所有输入都是负数时,综合的最大子向量是空向量,总和为0; 例如输入10个数 31,-41,59,26,-53,5...

求连续子数组最大和

问题 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。 例如输入的数组为-2,11,-4,...
  • twlkyao
  • twlkyao
  • 2013年06月25日 16:22
  • 1075

求连续子数组的最大和问题

http://www.cnblogs.com/allzy/p/5162815.html 前言   这几天一直在读Weiss的数据结构书(Data Structures an...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组连续子数组的最大和
举报原因:
原因补充:

(最多只允许输入30个字)