结对队友:胡康臻、杨寒寒

1、设计思想:

首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生;

然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只存放最大的子数组,以及记录最大子数组的位置,从第一个数开始每行每列进行求和比较,以求得最大子数组的值,以及最大子数组所包含的数;

最后进行结果的输出与验证。

2、代码

import java.util.*;public class zuixiaozishuzu {public static void main(String[] args) {// TODO Auto-generated method stubint m,n,M,N,max,sum;int i,i1,i2,j,j1,j2;int shouL,shouR,weiL,weiR;Scanner sc = new Scanner(System.in);System.out.println("输入二维数组的行数和列数:");m =    sc.nextInt();n = sc.nextInt();System.out.println("输入该二位数组的取值范围(保证第一个数小于第二个数):");M = sc.nextInt();    N = sc.nextInt(); int[][] Shuzu = new int[m][n];for(i = 0;i < m;i++)for(j = 0;j < n;j++){Shuzu[i][j] = N + (int)(Math.random()*(M - N));}System.out.println("该随机二维数组为:");for(i = 0;i < m;i++)for(j = 0;j < n;j++){System.out.print(Shuzu[i][j]+"\t");if(j == n - 1){System.out.print("\n");}}sum =0;max = Shuzu[0][0];shouL = 0;shouR = 0;weiL = 0;weiR = 0;i = 0;for(j = 0;j < n;j++){i1 = i;for(j1 =j;j1 < n;j1++){i2 = i;for(j2 = j;j2 <= j1;j2++){sum += Shuzu[i2][j2];if((j2 == j1)&&(i2 < i1)){i2++;j2 = j;}else if(j2 == j1&&i2 == i1){break;}}if(max < sum){max = sum;shouL = i;shouR = j;weiL = i1;weiR = j1;}sum = 0;if(j1 == n -1 && i1 < m -1){i1++;j1 = j;}else if(j1 == n-1 && j1 == m - 1){break;}}if(j == n - 1 && j < m - 1){i++;j = 0;}else if(j == n - 1 && j == m - 1){break;}}        System.out.println("最大子数组和为:");System.out.println(max);System.out.println("最大子数组为:");for(i = shouL;i <= weiL;i++)for(j = shouR;j <= weiR;j++){System.out.print(Shuzu[i][j] + "\t");if(j == weiR){System.out.print("\n");}}sc.close();}}

3、截图

转载于:https://www.cnblogs.com/shouhutian/p/6679766.html

求二维数组最大子数组相关推荐

  1. 求二维数组中最大子数组的和

    任国庆  张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...

  2. 求一个二维整数数组最大子数组之和,时间复杂度为N^2

    本随笔只由于时间原因,我就只写写思想了   二维数组最大子数组之和,可以  引用  一维最大子数组之和 的思想 一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组 ...

  3. 结对开发2(求二维数组的最大子数组和)

    一,题目要求: 输入一个二维数组,求出此二维数组的最大子数组和. 二,设计思路: 利用for循环进行遍历,求出数组中每一个子数组的和,最终求出这些子数组的最大的一个值.程序中利用了调用函数,被调函数分 ...

  4. 软件工程——求二维数组所有子矩阵的和的最大值

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为 ...

  5. 返回一个二维整数数组最大子数组的和

     要求: 1,输入一个二维整形数组,数组里有正数也有负数. 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值. 设计思路: 参照一维整数数组求解最大子 ...

  6. 二维数组最大子数组和

    一.实验题目 求一个二维数组中和最大的子数组. 二.实验思路 基于我们第一次合作时求的一位数组最大子数组,加上一层循环来遍历二维数组中的所有子矩阵的情况. 第一步:先利用上次的方法求每一行的情况,将每 ...

  7. 环状二维数组最大子数组求和

    题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一 ...

  8. 结对开发——求二维环形数组所有子矩阵最大和的问题

    一.题目要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. ...

  9. 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)

          首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况.       想起来这个问题也不是很难,我们可以求解一维矩阵 ...

  10. 求二维数组的转置矩阵

    1 /*===================================== 2 求二维数组的转置矩阵 3 输入 4 两个整数n和m 5 n行m列的二维数组 6 输出 7 输出该二维数组的转置矩 ...

最新文章

  1. IDEA如何导入多个maven依赖的项目
  2. Android Fragments 详细使用
  3. oracle批量把小写转换成大写,oracle数据库批量将表名小写转大写
  4. 大城市卷不动了,我要回老家!
  5. Oracle ERP权限管理
  6. java api 第一个类是_JAVA之Object常用API
  7. Android无界面编程之使用Service
  8. nowcoderG 小国的复仇
  9. Matlab中的magic函数、vander函数、hilb函数、compan函数、pascal函数、zeros函数、ones函数、eye函数、rand函数、randn函数
  10. 关于金山词霸2009牛津版在windows2003下无法对PDF文件取词的问题
  11. 腾讯围棋AI技术PhoenixGo正式开源
  12. 计算机键盘能直接接手机吗,手机变电脑!智能手机外接键盘和鼠标的3种方法...
  13. 奇兔recovery卡刷教程_OPPO A59s 刷入奇兔recovery及root权限刷机教程
  14. Orz_panda cup I题 (xdoj1117) 状压dp
  15. 心跳与超时:高并发高性能的时间轮超时器
  16. python猴子吃桃问题_用Python解决猴子吃桃问题
  17. macOS 动态桌面
  18. kali虚拟机安装及配置
  19. Buddy 内存管理机制(下)
  20. Python计算生态

热门文章

  1. while(cina)在文件输入时,切换时会出现的问题
  2. 三菱je-a系列伺服支持modbusrtu 协议吗_入门课程 | 三菱FX系列PLC的软元件介绍
  3. python连接oracle数据库_Python连接oracle数据库 例子一
  4. java post 500_Post请求form-data格式时请求返回500的问题
  5. e4a编写文件服务器,e4a教程 联云服务器
  6. JAVA培训哪里好?学习Java难不难
  7. 循序渐进:带你理解什么是Java内存模型
  8. 【radar】毫米波雷达相关开源项目代码汇总(工具箱、仿真、2D毫米波检测、融合、4D毫米波检测、分割、SLAM、跟踪)(6)
  9. keras 的 example 文件 imdb_bidirectional_lstm.py 解析
  10. Ubuntu命令行连接wifi热点