二维数组求最大矩阵

在上次一维数组求最大子数组的和之后我又做了这次的二维数组最大矩阵之和,代码如下

#include<iostream.h>
static int max;

void qiongju(int juzhen[][4],int ai,int aj,int m,int n)
{
int linshi;
for(int i=ai;i<m;i++)
{
for(int j=aj;j<n;j++)
{
linshi=0;
for(int i1=ai;i1<=i;i1++)
{
for(int j1=aj;j1<=j;j1++)
{
linshi=linshi+juzhen[i1][j1];
}
}
// cout《linshi《endl;
if(linshi>max)
   {
   max=linshi;
   }
}
}
}
void main()
{
int juzhen[3][4]={{1,4,-6,5},{-6,7,-9,2},{6,4,2,-4}};
for(int si=0;si<3;si++) //输出矩阵
  {
   for(int sj=0;sj<4;sj++)
   {
   cout《juzhen[si][sj]《" ";
   }
   cout《endl;
  }
  max=juzhen[0][0];
  for(int i=0;i<3;i++) //对每一个值作为子矩阵第一个值分别求和
  {
   for(int j=0;j<4;j++)
   {
   qiongju(juzhen,i,j,3,4);
   }
  }
  cout《"最大子矩阵和为:"《max《endl;

思路:

这段程序我实在网上找到的,利用的穷举法,也可以是压榨法,就是把这个矩阵压缩成一个长方形,宽为一,然后在向其他列扩展,之和加起来在比较。

此次是团队开发,我负责编辑程序。

合伙人:郎国杰
}

转载于:https://www.cnblogs.com/jump/p/4411911.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值