题目:返回一个二维整数数组中最大子数组的和。要求:输入一个二维整形数组,数组里有正数也有负数。二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。思路:借鉴网上代码整理得思路;根据一位数组最大子数组求和的编程思路,讲二维数组转化成一维数...
分类:
编程语言 时间:
2015-04-09 23:40:17
阅读次数:
183
设计思路:首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生;然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只存放最大的子数组,以及记录最大子数组的位置,从第一个数开始每行每列进行求和比较,以求得最大子数组的值,以及最大子数组所包含的数;最后进...
分类:
编程语言 时间:
2015-04-09 23:38:52
阅读次数:
174
设计思想:首先肯定是把二维转化为一维数组来比较,这样,先从第一行开始,把第一行看成是一维数组选出最大子数组具体实现是,设子数组和为sum=0,另设b=0,a[0][i]从a[0][0]开始检索当bsum时sum=b,(首先保证sum的初次赋值是大于0然后就是对b的操作首次出现正数时赋给b此时sum....
分类:
编程语言 时间:
2015-04-09 23:35:47
阅读次数:
261
一、设计思路求出该二维数组的所有子数组,先确定一个位置为起点,然后向右下方依次以此起点为始的所有子数组,图1—顺序求子数组具体如上图1,顺序求出子数组,然后和max值相比较,若比max值大,则将该子数组和赋给max,并保存其位置,对该子数组的位置,只需要保存其首尾位置即可,图2—保存子数组位置如上图...
分类:
编程语言 时间:
2015-04-09 23:29:04
阅读次数:
186
1 #include 2 #include 3 #define N 2000 //宏定义 4 using namespace std; 5 void main() 6 7 { 8 int a[N]; //整数数组 9 ...
分类:
编程语言 时间:
2015-04-09 23:25:14
阅读次数:
177
一、设计思路:与求一维数组的最大子数组类似,将二维数组转化为一维数组来计算,也是通过遍历的方式将一个子矩阵与上几个子矩阵相加如果小于0则舍去这个子矩阵,按此方法计算从这个子矩阵以后的矩阵,求得遍历中最大值,即为最大子数组之和。二、代码:package soft_third_test; public ...
分类:
编程语言 时间:
2015-04-09 23:22:41
阅读次数:
275
设计思路将二维数组转化为一位数组(并非形式上的转化而是将连续的行合并然后当做上次编写的一维数组求最大子数组和)来计算。时间复杂度没有达到要求的O(n),也是通过遍历的方式将一个子矩阵与上几个子矩阵相加如果小于0则舍去这个子矩阵,按此方法计算从这个子矩阵以后的矩阵,知道遍历完取最大值。代码:packa...
分类:
编程语言 时间:
2015-04-09 23:08:07
阅读次数:
264
在上次一维数组求最大子数组的和之后我又做了这次的二维数组最大矩阵之和,代码如下#includestatic int max;void qiongju(int juzhen[][4],int ai,int aj,int m,int n){ int linshi; for(int i...
分类:
编程语言 时间:
2015-04-09 21:43:22
阅读次数:
156
一、题目要求题目:返回一个二维整数数组中最大子数组的和。要求: 输入一个二维整形数组,数组里有正数也有负数。 二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。结对编程要求: 两人结对完成编程任务。 一人主要负责程序分析,代码编程。...
分类:
编程语言 时间:
2015-04-09 19:47:02
阅读次数:
202
1 //XiaoSong Du 2015/4/8 2 #include 3 #include 4 using namespace std; 5 #define M 3 6 #define N 6 7 8 void main() 9 {10 int a[M][N],b[N],d = 0...
分类:
编程语言 时间:
2015-04-09 19:33:07
阅读次数:
118