M*N的二维数组,详细思路步骤如下:
- i,j,m,n分别为子数组的开始的下标和结束的下标(分别为矩形左上角,右上角,左下角,右下角,i,m为行,j,n为列),MAX记录最大值,SUM记录子数组的值。
- i=0,j=0,m=i,n=j,i,j,m,n数值不变,求此时数组的值,赋值给SUM,与MAX比较,SUN>MAX,SUM赋值给MAX,SUM<=MAX,MAX值不变。
- i,j,m不变,n一次变大且小于N,依次求子数组的值,求此时数组的值,赋值给SUM,与MAX比较,SUN>MAX,SUM赋值给MAX,SUM<=MAX,MAX值不变,到n=N时结束。
- i,j,不变,m加1,重新执行第三部。
- i,j,不变,当m<=M时,重复第四部,到m=M时结束。
- i不变,j加1,重复3,4,5。
- i不变,重复第六步,到j=N,结束。
- i加1,重复第七步。
- 重复第八步,知道i=M。结束。
- 记录输出MAX值,四层循环结束。
设计者
薛禄坤 孙存良