首页 > 其他 > 详细

二维数组求其中子数组的最大和

时间:2014-03-27 20:46:56      阅读:677      评论:0      收藏:0      [点我收藏+]

 二维数组相对来说比一维数组复杂,因为其子数组的情况相对来说比较多,每一个数所在的子数组,有各种方向的,有一维的,二维的,所以不能用一维数组的方法来看二维数组。就拿二维数组:1 2 34 5 67 8 9来说2所在的子数组有1 2,1 2 32 3,2 5,2 5 81 2 4 5,2 5 3 61 2 3 4 5 61 2 4 5 7 82 3 5 6 8 91 2 3 4 5 6 7 8 9;各种情况,其中既有一维的也有二维的,并且其长度也各不相同,所以来说比较麻烦,列出每一个数所在的子数组显然地不合适的,并且其中好多都是重复的,不可取,所以那些重复的部分只算一遍就行了。

总体来说也就是把数组中的的数依次循环,每次循环到该元素时,就以该元素为标准,为数组的第一个元素,其所在的列与行为标准右下角的所有元素组成新的二维数组,计算在此新的数组中,第一个元素所在的所有的子数组的和,直到循环到最后一个元素为止。以二维数组1234为例,1为标志元素时,其子数组有,12,13,1234三种情况,标志元素为2时其子数组有24,当标志元素为3时其子数组有34,当标志元素为4时就结束。此方法就相当于对各个子数组进行了很好的排序,做到有规律按序求和,这样就不会漏掉所有的子数组,也不会重复。

拿以下的三维数组为例

1 2 3

4 5 6

7 8 9

2为标志元素先求2 3的和,再求2 5,求2 3 5 6,求2 5 82 3 5 6 8 9,到每一个元素时都按此规律进行求和,知道循环到9为止,从而求出最大的和。

二维数组求其中子数组的最大和,布布扣,bubuko.com

二维数组求其中子数组的最大和

原文:http://www.cnblogs.com/momo-jiji/p/3628663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!