求二维数组的最大子数组

一、题目:

     n返回一个二维整数数组中最大子数组的和。
二、要求:
    n输入一个二维整形数组,数组里有正数也有负数。
    n二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。
    n求所有子数组的和的最大值。要求时间复杂度为O(n)。 
三、程序源码:
import java.util.Random;
import java.util.Scanner;

public class dd {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
                System.out.println("请输入数组的行数和列数:");
                Scanner sc=new Scanner(System.in);
                int n=sc.nextInt();
                int m=sc.nextInt();
                int a[][]=new int[n][m];
                Random rand=new Random();
                int Sum=0;
                int N=0;
                int i=0;
                int e=0;
                System.out.print("请输入数字范围:");
                int m1=sc.nextInt();
                int m2=sc.nextInt();
                for(e=0;e<m;e++)
                {
                    for(i=0;i<n;i++)
                    {
                        a[i][e]=(int) (m1+Math.random()*(m2-m1+1));
                        System.out.print(a[i][e]+"  ");
                    }
                    System.out.println();
                }
                int M=a[0][0];
                for(e=0;e<m;e++)
                {
                    int y=e;
                    do
                    {
                       for(i=0;i<n;i++)
                       {
                           for(int u=e;u>=y;u--)
                           {
                               Sum=Sum+a[i][u];
                           }
                            N=N+Sum;
                            if(N>=M)
                            {
                                M=N;
                            }
                            if(N<0)
                            {
                                N=0;
                            }
                            Sum=0;
                       }
                       y--;
                       N=0;
                    }while(y>=0);
                }
                System.out.println("最大:"+M);
    }
      
}

四、程序运行截图:

五、两人合作过程及体会以及解决冲突方法:

合作过程:此次开发,有严雅芳进行程序分析和代码编程,我负责代码复审和代码测试计划。

体会:合作开发中,交流最为重要,要写好程序,就要让同伴了解自己的程序设计思路,与同伴之间沟通好,由于自己理解力比较差,对于严雅芳的设计思路好久才理清,以后要多多注意了。

解决冲突的方法:当发生冲突时,先让双方互换意见及思路,再不能说服对方的情况下,停止编程,让各自冷静下来,仔细想想,过一段时间再继续。

六、结对开发照:

转载于:https://www.cnblogs.com/fengyutongxing/p/4403259.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值