zoukankan      html  css  js  c++  java
  • 【C】二维数组求最大子数组(基于一维数组的拓展)

         

    复制代码
    #include<stdio.h>
    
    
    void MAX(int *a,int m,int n) 
    { 
        int max=a[0],sum=0; 
        for(int i=0;i<m;i++) 
        { 
            for(int j=0;j<n;j++) 
            {
                for(int i2=i;i2<m;i2++) 
                { 
                    for(int j2=j;j2<n;j2++) 
                    { 
                        sum = 0; 
                        for(int i3=i; i3<=i2;i3++) 
                            for(int j3=j; j3<=j2;j3++) 
                            { 
                                sum+=a[i3*n+j3];  
                            } 
                        if(max<sum)
                            max=sum;
                    } 
                } 
            } 
        } 
        printf("%d",max); 
       
    } 
    main()
    {
        
        int a[]={1,2,3,
                               -4,-5,-6,
                     9,4,-1};
        printf("
    1,2,3
    -4,-5,-6
    9,4,-1
    的MAX:");
        MAX(a,3,3);
        int b[]={1,2,3,
                    4,5,6,
                    9,4,1};
        printf("
    1,2,3
    4,5,6
    9,4,1
    的MAX:");
        MAX(b,3,3);
        int c[]={-1,-2,-3,
                                -4,-5,-6,
                    -9,-4,-1};
        printf("
    -1,-2,-3
    -4,-5,-6
    -9,-4,-1
    的MAX:");
        MAX(c,3,3);
        int d[]={-1,2,-3,
                                -4,5,-6 };
        printf("
    -1,2,-3
    -4,5,-6
    的MAX:");
        MAX(d,2,3);
    }
    复制代码

    对函数进行测试:
       分别对 正、负、正负、n*n、n*m型二维数组进行了测试。

  • 相关阅读:
    Hdu 2389 二分匹配
    Hdu 1156
    Hdu 1255
    Hdu 1542
    python 中初始化二维数组的方法
    chrome扩展小试
    浏览器的重绘与重排
    js执行环境相关
    js 触摸事件
    js柯里化的一个应用
  • 原文地址:https://www.cnblogs.com/huang-wei/p/3612263.html
Copyright © 2011-2022 走看看