• 二维数组最大子数组


    由一位数组到求二维数组中的最大子数组  ;开始是想的是把每一行,每一列,中最大的求出来;只有有一个倒置矩阵就能和实现,后来老师一说这个子数可以是几行几列;

    瞬间就感到不是那么容易,开始我和我的好基友就是想依次遍历;for循环;华飞说这样麻烦,会有重复的部分;但是并不影响最大的结果;对于老师的提示:最大的子数组有可能出现在该数组中最大的那个数周围;或正整数最多的行或列;我们也讨论了,但是感觉还是不是很对。。。。纠结最后还是依次遍历吧.....

     
    
    程序如下:
    
    #include<iostream>
    using namespace std;
    #define N 100
    int main()
    {
    int row,column;
    int sum,max;
    int i,k,j,t,m,x,n,s;
    int a[N][N],b[N][N],c[N][N],d[N][N];
    int length,line;
    cout<<"请输入数组的行数:"<<endl;
    cin>>row;
    cout<<"请输入数组的列数:"<<endl;
    cin>>column;
    cout<<"请输入数组元素:"<<endl;
    for(i=0;i<row;i++)
       {
          for(j=0;j<column;j++)
              { 
              cin>>a[i][j];
              } 
        }
    for(i=0;i<row;i++)
       {
          for(j=0;j<column;j++)
             {
                max=a[i][j];
                for(m=1;m<=column-j;m++)
                { 
                sum=0;
                length=1;
                line=i;
                for(x=0;x<row;x++)
                { 
                for(k=j;k<j+m;k++)
                    {
                    sum=sum+a[x][k];
                    }
                    if(max<=sum)
                        {
                        max=sum;
                        length=m;
                        line=x; 
                        b[i][j]=max;
                        c[i][j]=length;
                        d[i][j]=line; 
                        }
                } 
                }
            }
        }
    max=b[0][0];
    t=0;
    n=0;
    for(i=0;i<row;i++)
        {
        for(j=0;j<column;j++)
        { 
        if(max<b[i][j]) 
            {
            max=b[i][j];
            t=i;
            n=j;
            }
        }
        }
    cout<<"最大子数组和是:";
    cout<<max<<endl;
    cout<<"子序列为"<<endl;
    for(i=t;i<=d[t][n];i++)
        {
        for(j=n;j<n+c[t][n];j++)
            {
            cout<<a[i][j]<<'	';
            }
            cout<<endl;
            }
    return 0;
    }

  • 相关阅读:
    深圳移动 神州行(大众卡/轻松卡/幸福卡)套餐资费(含香港日套餐)信息及使用方法
    PHP设置时区,记录日志文件的方法
    微信公众平台消息接口使用指南
    C#日期时间格式化
    使用CMD实现批量重命名[转]
    Python高效编程技巧
    实用WordPress后台MySQL操作命令
    ubuntu-wine
    Javascript 笔记与总结(2-8)对象2
    Swift5.3 语言指南(十) 枚举
  • 原文地址:https://www.cnblogs.com/songjingchao/p/3612248.html
Copyright © 2020-2023  润新知