zoukankan      html  css  js  c++  java
  • 结对开发2//返回一个二维整数组中最大子数组的和

    题目:返回一个二维整数数组中最大子数组的和

    要求:

    1.输入一个二维整型数组,数组里有正数也有负数       

    2.二维数组中,连续的一个子矩阵组成一个子数组,每个子数组都有一个和  

    3.求所有子数组和

    同组人:林梦颖

    源程序:

     1 #include <stdio.h>
     2 int MAX(int a, int b)//求最大值
     3 {
     4     if (a > b)
     5         return a;
     6     else
     7         return b;
     8 }
     9 int main(void)
    10 {
    11     int a[3][6] = { { 5, 6, -3, 8, -9, 2 }, { 1, -12, 20, 0, -3, -5 }, { -9, -7, -3, 6, 7, -1 } };//先定义一个数组
    12     printf("array a:
    ");
    13     for (int i = 0; i<3; i++)
    14     {
    15         for (int j = 0; j<6; j++)
    16         {
    17             printf("%5d", a[i][j]);
    18         }
    19         printf("
    ");
    20     }
    21 
    22     int i, j, m=3, n=6,sum;
    23     int p[3][6];
    24     int max = a[0][0];
    25     for (i = 0; i<n; i++)
    26     {
    27     
    28         for (j = 0; j<m; j++)
    29         {
    30             if (i == 0)
    31             {
    32                 if (j == 0)
    33                 {
    34                     p[i][j] = a[i][j];
    35                     sum = p[i][j];
    36                     max = MAX(sum, max);
    37 
    38                 }
    39                     
    40                 else
    41                 {
    42                     p[i][j] = p[i][j - 1] + a[i][j];
    43                     sum = p[i][j];
    44                     max = MAX(sum, max);
    45                 }
    46                     
    47             }
    48             else
    49             {
    50                 if (j == 0)
    51                 {
    52 
    53                     p[i][j] = p[i - 1][j] + a[i][j];
    54                     sum = p[i][j];
    55                     max = MAX(sum, max);
    56                 }
    57                 else
    58                 {
    59                     p[i][j] = p[i][j - 1] + p[i - 1][j] - p[i - 1][j - 1] + a[i][j];
    60                     sum = p[i][j];
    61                     max = MAX(sum, max);
    62                 }
    63             }
    64         }
    65     }
    66     printf("maxsum=%d", max);
    67     getchar();
    68     getchar();
    69     return 0;
    70 }

    运行结果:

    总结:  在本次任务中,看似简单清晰的思路,在代码上实践起来却遇到了重重困难。最初的想法是遍历整个子数组,发现时间复杂度太大,完成起来较为困难。经过和组员一同寻找网络资料,翻阅图书,找到较为简便的思路方法,将这个方法逐步呈现在电脑屏幕上。由最初的简陋的框架,一步步将其完善。最终圆满完成了老师布置的任务。从最初的遥不可及到完成任务,是一个完善学习完善自己的一个路程,今后也会不放弃的坚持完成每一次作业,更上一层楼! 

  • 相关阅读:
    css3---2D效果 ---3D效果
    PHP 代 码 操 作 文 件
    文件上传
    在AJAX里 使用【 XML 】 返回数据类型 实现简单的下拉菜单数据
    在AJAX里 使用【 JSON 】 返回数据类型 实现简单的下拉菜单数据
    使用 AJAX + 三级联动 实现分类出全国各地的省,市,区
    AJAX里使用的弹窗样式 tanchuang.js tanchuang.css
    jquery-1.11.2.min.js
    使用【 ajax 】【 bootstrap 】显示出小窗口 详情内容 一些代码意思可以参考下一个文章
    AJAX基本操作 + 登录 + 删除 + 模糊查询
  • 原文地址:https://www.cnblogs.com/DreamerT/p/9825848.html
Copyright © 2011-2022 走看看