zoukankan      html  css  js  c++  java
  • 结对开发5

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

    要求:

    输入一个二维整形数组,数组里有正数也有负数。

    二维数组首尾相接,象个一条首尾相接带子一样。

    数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

    求所有子数组的和的最大值。要求时间复杂度为O(n)。

    结对编程要求:

    两人结对完成编程任务。

    一人主要负责程序分析,代码编程。

    一人负责代码复审和代码测试计划。

    发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。

    一、设计思路

          这一次,因为诸多原因,我两互换了角色,由我负责程序分析,代码编程,由郭庆樑负责代码复审和代码测试计划。我们的思路是把原来的二维数组扩展,首尾拼接,假设原来二维数组的长度为宽和高分别为n和m,即扩展成为2n-1,2m-1,必须要添加限制条件,使其行和列数量相加不得超过原来的n和m。

    二、源代码

    #include<stdio.h>
    int rect[55][55];//二维数组行和列最大为55
    int w,l;         //w表示行,l表示列
    int longest(int a[])
    {
         int i,j,find=0,max;
       for(i=0;i<l;i++)
       {
          max=0;
          for(j=i;j<2*l-2&&(j-i)<l;j++)//将二维数组长度扩展为2n-2
          {
             max+=a[j%l];             //行列相加不超过原来的最大行列值
             if(max>find) 
              find=max;            //find取得最大值
          }
         }
         return find;
    }
    int Rect(int a[55][55]) 

         int i,j,k;
         int find=0;         //表示最终的最大值
         int b[55];
         int buf;
         for(i=0;i<w;i++) 
       {
              for(j=0;j<l;j++)
                  b[j]=0;
              for(j=i;j<2*w-2&&(j-i)<w;j++)//将二维数组长度扩展为2n-2
          {
                  for(k=0; k<l; k++)
            {
                      b[k]+=a[j%w][k];     //行列相加不超过原来的最大行列值
                  }
                  buf=longest(b);
            if(find<buf) 
              find=buf;
              }
         }
         return find;
    }
    int main()
    {
         int i,j;
         int result;
       printf("请输入二维数组的行和列: ");
         scanf("%d%d",&w,&l);
       printf("请输入二维数组: ");
       for(j=0;j<w;j++)
         for(i=0;i<l;i++)
           scanf("%d",&rect[j][i]);
       result=Rect(rect);
       printf("最大子数组的和为:%d ",result);
         return 0;
    }

     三、截图

    四、总结

    这一次有我主要负责编写代码,期间我犯了不了不少原以为的低级错误,吸取了不少经验。这次角色互换是一个不错的体验。

    五、工作照

  • 相关阅读:
    HDU4474 Yet Another Multiple Problem BFS搜索
    HDU4473 Exam 数学分析
    2013ACM多校联合(4)
    POJ1273 网络流...
    HDU4472 Count 递推
    POJ1149 PIGS 网络流
    UVA10881 Piotr's Ants 想法题
    javascript js string.Format()收集
    修改 设置 vs.net 网站 调试 设为 起始页
    【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
  • 原文地址:https://www.cnblogs.com/lsfh/p/4399805.html
Copyright © 2011-2022 走看看