二维数组内 求最大矩形范围和 代码 李士广 徐晓勋
2014-04-01 22:59
218 查看
#include<iostream.h>
float MAX(float **a,int m,int n,int M,int N)
{
float max=a[m]
;
float sum;
for(int i=m;i<M;i++)
{
for(int j=n;j<N;j++)
{
sum=0;
for(int p=m;p<=i;p++)
{
for(int q=n;q<=j;q++)
{ sum=sum+a[p][q];}
}
if(sum>max)
max=sum;
}
}
return max;
}
void main()
{
int m,n;
float **arr;
cout<<"请输入二维数组aXb:";
cin>>m>>n;
arr=new float* [m]; //分配指针数组
for(int i=0; i<m; i++)
{
arr[i] = new float
; //分配每个指针所指向的数组
}
cout<<"请输入而为数组的值:";
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cin>>arr[i][j];
}
}
float **max;
max=new float* [m]; //分配指针数组
for(i=0; i<m; i++)
{
max[i] = new float
; //分配每个指针所指向的数组
}
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
max[i][j]=MAX(arr,i,j,m,n);
}
}
float Max=max[0][0];
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(max[i][j]>Max)
Max=max[i][j];
}
}
cout<<"最大矩形范围和是:"<<Max<<endl;
}
float MAX(float **a,int m,int n,int M,int N)
{
float max=a[m]
;
float sum;
for(int i=m;i<M;i++)
{
for(int j=n;j<N;j++)
{
sum=0;
for(int p=m;p<=i;p++)
{
for(int q=n;q<=j;q++)
{ sum=sum+a[p][q];}
}
if(sum>max)
max=sum;
}
}
return max;
}
void main()
{
int m,n;
float **arr;
cout<<"请输入二维数组aXb:";
cin>>m>>n;
arr=new float* [m]; //分配指针数组
for(int i=0; i<m; i++)
{
arr[i] = new float
; //分配每个指针所指向的数组
}
cout<<"请输入而为数组的值:";
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cin>>arr[i][j];
}
}
float **max;
max=new float* [m]; //分配指针数组
for(i=0; i<m; i++)
{
max[i] = new float
; //分配每个指针所指向的数组
}
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
max[i][j]=MAX(arr,i,j,m,n);
}
}
float Max=max[0][0];
for(i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(max[i][j]>Max)
Max=max[i][j];
}
}
cout<<"最大矩形范围和是:"<<Max<<endl;
}
相关文章推荐
- 二维数组求任意矩形范围数的和的最大值 李士广 徐晓勋
- C#新手入门代码 二维int型矩形数组与交错数组
- 二维数组求构成矩形的和的最大值
- 有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。
- 编程算法 - 连续子数组的最大和 代码(C)
- 求矩形子数组最大和
- 返回一个二维整数数组中最大联通子数组的和
- 返回一个二维整数数组中最大联通子数组的和
- 返回一个二维整数数组中最大联通子数组的和
- 最大连续子数组的和(记录子数组范围)
- 给定整型数组,其中每个元素表示木板的高度,木板的宽度都相同,求这些木板拼出的最大矩形的面积。并分析时间复杂度。
- 返回一个二维整数数组中最大子数组的和
- JAVA代码—算法基础:子数组的最大累加和问题
- 返回一个二维整数数组中最大联通子数组的和
- 输出二维数组中最大的值
- 编程之美2.15子数组之和的最大值(二维)Java版
- 每天写一点代码----连续子数组乘积最大
- 编程之美:第二章 数字之魅 2.15子数组之和的最大值(二维)
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果