返回二维数组最大联通子数组的和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回二维数组最大联通子数组的和相关的知识,希望对你有一定的参考价值。

一.题目

    输入一个二维整形数组,数组里有正数也有负数。

求所有子数组的和的最大值。

二.设计思想

   第一种方法:首先若要对二维数组进行分析,通常想要把它化简成为一个一维数组。再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标。这是就会分两种情况:第一种是行之间的最大子数组是相连的,这时就可以直接相加得到;第二种是不相连的,,这时候就把每行的最大子数组看成一个整体,再使每个最大数组块进行相连,求使其相连的最小代价。最后得到的就是最大联通子数组的和。

   第二种方法:在二维整形数组中,数据可能会有正也有负,要求最大值,我们重点关注正数,所以要首先判断二维数组中哪些位置上的数是正数,利用另一个二维数组记录正数的位置,然后判断哪些数是连通的。首先定位这个二维数组中的最大值,然后在分析这个值周围的4个数,联通这4个数中的正数,若全为负数,则查找次大值,并与最大值联通,判断联通前与联通后值得大小,若变小则不联通最大值,若变大则联通最大值,以此类推,直到最大联通子数组怎么联通都比原来的值小。

三.实验代码

 

以上是关于返回二维数组最大联通子数组的和的主要内容,如果未能解决你的问题,请参考以下文章

返回二维数组最大联通子数组的和

返回二维数组最大联通子数组的和

返回一个二维整数数组中最大联通子数组的和

返回一个二维数组中最大联通子数组的和

返回二维数组子数组联通和最大

返回一个二维整数数组中最大联通子数组的和