设计思路:对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行。第二种是不相连的如第一行是2-5,第二行是6-7,这时候就把...
分类:
编程语言 时间:
2015-06-23 06:10:00
阅读次数:
140
最大子数组的和 在给定的一个数组中,找出连续的一部分数组,使其中的元素和最大。例如输入1,-2,5,3,-3,7,-2,-1,输出的最大子数组和为12。 ①如果什么都不考虑,用最直接的办法来求解,即三重for循环来暴力求结果,该算法的时间复杂度为O(n^3)代码如下://本段代码引自编程之美
int MaxSum(int* A, int n)
{
int maximum = -INF;...
分类:
编程语言 时间:
2015-06-21 15:49:47
阅读次数:
124
设计思路对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行。第二种是不相连的如第一行是2-5,第二行是6-7,这时候就把每...
分类:
移动开发 时间:
2015-06-19 13:18:59
阅读次数:
141
一.题目 输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。二.设计思想方法一:首先若要对二维数组进行分析,之前我们已经做过关于一位数组的练习,所以我们可以把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之...
分类:
移动开发 时间:
2015-06-19 10:14:12
阅读次数:
174
一.题目 输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。二.设计思想方法一:首先若要对二维数组进行分析,之前我们已经做过关于一位数组的练习,所以我们可以把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之...
分类:
移动开发 时间:
2015-06-18 23:44:13
阅读次数:
133
题目:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。思路:首先若要对二维数组进行分析,通常想要把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之间的最大子数组是相连的,这时就可以直接相加得到;第二种是不...
分类:
移动开发 时间:
2015-06-18 11:29:55
阅读次数:
159
一.题目 输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。二.设计思想(方法一)首先若要对二维数组进行分析,通常想要把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之间的最大子数组是相连的,这时就可以直接...
分类:
移动开发 时间:
2015-06-17 14:42:59
阅读次数:
116
返回一个二维整数数组中最大联通子数组的和题目:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。思路:(方法一)首先若要对二维数组进行分析,通常想要把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之间的最大...
分类:
移动开发 时间:
2015-06-17 13:20:33
阅读次数:
159
1.题目:返回一个二维整数数组中最大联通子数组的和。要求:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。要求时间复杂度为O(n)。2.设计思路对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分...
分类:
移动开发 时间:
2015-06-16 22:51:51
阅读次数:
237
今天看了曹博的动态规划视频,发现又有一种新的解法。
算一个前缀和,presum[], 这是常有的空间优化时间,计算一个子数组和的常有方法
然后维护一个sum[0...i-1]的最小值,然后和sum[i]减,就是以a[i-1]为尾元素的子数组和的最大值
时间ON,空间O1
class Solution {
public:
int maxSubA...
分类:
编程语言 时间:
2015-06-12 10:02:31
阅读次数:
216