在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数组,之后同学给了一段源代码,自己还在摸索:

  1 package b;
2
3 import java.util.Scanner;
4
5 import javax.print.attribute.standard.PrinterLocation;
6
7 public class b
8 {
9 public static void main(String[] args)
10 {
11 Scanner scanner=new Scanner(System.in);
12 System.out.println("请输入二维数组的行和列:");
13 int hang=scanner.nextInt();
14 int lie=scanner.nextInt();
15 System.out.println("请输入二维数组:");
16 int[][] shuzu=new int[hang][lie];
17
18 int i,j;
19 for(i=0;i<hang;i++)
20 {
21 for(j=0;j<lie;j++)
22 {
23 shuzu[i][j]=scanner.nextInt();
24 }
25 }
26
27 System.out.println("此数组中连续和的最大值为:"+max(shuzu,hang,lie));
28
29 }
30
31 static int max(int shuzu[][],int hang,int lie)
32 {
33 int max=0,sum=0;
34 int i,j;
35 int[] b=new int[lie];
36 int[] up=new int[hang];
37 int[] down=new int[hang];
38 int[] t=new int[hang];
39 if(lie==1)
40 {
41 for (i=0;i<hang;i++)
42 {
43 sum+=shuzu[i][0];
44 if(sum<0)
45 {
46 sum=0;
47 }
48 if(sum>max)
49 {
50 max=sum;
51 }
52 }
53
54 if(max==0)
55 {
56 for(i=0;i<hang;i++)
57 {
58 if(i==0)
59 {
60 max=shuzu[i][0];
61 }
62 if(shuzu[i][0]>max)
63 {
64 max=shuzu[i][0];
65 }
66 }
67 }
68 }
69 else
70 {
71 for(i=0;i<hang;i++)
72 {
73 for(j=0;j<lie;j++)
74 {
75 b[j]=shuzu[i][j];
76 }
77 int[] c=new int[100];
78 c[0]=0;
79 int sum1=0,max1=0,k;
80 for(k=0;k<lie;k++)
81 {
82 if(sum1<0)
83 {
84 sum1=b[k];
85 }
86 else
87 {
88 sum1=sum1+b[k];
89 }
90 c[k]=sum1;
91 }
92 max1=c[0];
93 int mmark=0,smark=0;
94 for(k=0;k<lie;k++)
95 {
96 if (max1<c[k])
97 {
98 max1= c[k];
99 mmark = k;
100 }
101 }
102 for (k = mmark;k >= 0;k--)
103 {
104 if (c[k] == b[k])
105 {
106 smark = k;
107 break;
108 }
109 }
110 sum=max1;
111
112 up[i]=smark;
113 down[i]=mmark;
114 t[i]=sum;
115
116 }
117 int t2=t[0];
118 for(i=0;i<hang-1;i++)
119 {
120 if(up[i]<=down[i+1] && down[i]>=up[i+1])
121 {
122 t2+=t[i+1];
123 }
124 for(j=up[i];j<up[i+1];j++)
125 {
126 if(shuzu[i+1][j]>0) t2+=shuzu[i+1][j]; //判别独立正数
127 }
128
129 }
130 max=t2;
131 }
132 return max;
133 }
134 }

最新文章

  1. C#基础---Attribute(标签) 和 reflect(反射) 应用
  2. ZeroMQ接口函数之 :zmq_term - 终结ZMQ环境上下文(context)
  3. ASP.NET 控件前缀命名规范
  4. smartform
  5. python unicode 和 str 类型的关系
  6. 【POJ 1112】Team Them Up!(二分图染色+DP)
  7. 【LeetCode】264. Ugly Number II
  8. ThinkPHP多表操作
  9. Mysql,Oracle,Java数据类型对应
  10. cocoapods使用指南
  11. 如何通过java反射将数据库表生成实体类?
  12. lodash源码分析之缓存使用方式的进一步封装
  13. 图像分类(三)GoogLenet Inception_v3:Rethinking the Inception Architecture for Computer Vision
  14. 创建一个dynamics 365 CRM online plugin (三) - PostOperation
  15. 2019.02.12 bzoj5294: [Bjoi2018]二进制(线段树)
  16. 2017.4.4 TCP/IP协议栈
  17. 一个PHP操作大变量的例子
  18. Web前端面试指导(八):iframe有那些缺点
  19. tomcat 服务添加到系统服务
  20. 【BZOJ】1725: [Usaco2006 Nov]Corn Fields牧场的安排

热门文章

  1. springboot 非端口模式启动
  2. Json文件解析(上)
  3. Eclipse修改默认的语言编码设置,处理乱码
  4. Python_selenium页面元素整合设计经验
  5. redis 记一次搭建高可用redis集群过程,问题解决;Node 192.168.184.133:8001 is not configured as a cluster node
  6. 《python网络数据采集》笔记2
  7. 「题解」300iq Contest 2 H. Honorable Mention
  8. RobotFramework常用断言关键字
  9. Quill基本使用和配置 - DevUI
  10. 2020想进大厂你不得不了解的MySQL意外事件的查询技巧