转载声明:原文转自http://www.cnblogs.com/xiezie/p/5502855.html

第一、二次的思路都是穷举;

第一次的实现是用二维数组;

import java.util.*;

import java.io.*;

public class Main{

    public static void main(String[] arg){
Scanner scan = new Scanner(new BufferedInputStream(System.in));
int n = scan.nextInt();
int l = n;
while(n!=0){
int m = scan.nextInt();
int[] a = new int[m];
int len = 0;
for(int i = 0 ; i != m ; i ++){
a[i] = scan.nextInt();
len = len + i + 1;
}
int[] sum = new int[len];
for(int i = 0 ; i != m ; i ++ ){
int h = 0;
for(int g = 0 ; g != i+1 ; g ++ ){
h+=g;
}
for(int j = i ; j != m ; j ++ ){
for(int k = i ; k != j+1 ; k ++ ){
sum[m*i+j-h] = sum[m*i+j-h] + a[k];
}
}
}
int max = sum[0];
int maxI = 1,maxJ = 1;
for(int i = 0 ; i != m ; i ++ ){
int h = 0;
for(int g = 0 ; g != i+1 ; g ++ ){
h+=g;
}
for(int j = i ; j != m ; j ++ ){
if(sum[m*i+j-h]>max){
maxI = i+1 ;
maxJ = j + 1;
max = sum[m*i+j-h];
}
}
}
System.out.println("Case " + (l-n+1) + ":");
System.out.println(max + " " + maxI + " " + maxJ);
if(n!=1){
System.out.println();
}
n--;
}
} }

但是:报了Memory Limit Exceeded的错误

第二次的思路是将二维数组转化为一维数组

但是运行效果不好,代码冗长

第三次AC

具体分析这个程序应该怎么更好的实现,在输入时就开始判断最大数

import java.util.*;

import java.io.*;

public class Main{

    public static void main(String[] arg){
Scanner scan = new Scanner(new BufferedInputStream(System.in));
int n = scan.nextInt();
int y = n;
while(n!=0){
int m = scan.nextInt();
int l = m ;
int sum = -1001;
int max = -1001;
int maxI = 1;
int maxJ = 1;
int i = 1;
int j = 1;
while(m!=0){
int a = scan.nextInt();
if(sum>=0){
j++;
sum += a ;
}else{
i= l-m+1;
j= l-m+1;
sum = a;
}
if(max<sum){
max = sum;
maxI = i;
maxJ = j;
}
m--;
}
System.out.println("Case " + (y-n+1) + ":");
System.out.println(max + " " + maxI + " " + maxJ);
if(n!=1){
System.out.println();
}
n--;
}
} }

HDOJ-ACM1003(JAVA)的更多相关文章

  1. hdoj 1753 (Java)

    刚刚开始用Java,代码难免不够简洁. import java.math.BigDecimal; import java.util.Scanner; public class Main { publi ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)

    Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现 ...

  4. HDOJ(HDU) 2192 MagicBuilding(用Java的Map做了下)

    Problem Description As the increase of population, the living space for people is becoming smaller a ...

  5. HDOJ(HDU) 2133 What day is it(认识下Java的Calendar类---日期类)

    Problem Description Today is Saturday, 17th Nov,2007. Now, if i tell you a date, can you tell me wha ...

  6. hdoj 1753 大明A+B 高精度/java

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. hdoj 1002 A + B Problem II 高精度 java

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  10. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

随机推荐

  1. OFBiz之SVN下载地址

    trunk: $ svn co http://svn.apache.org/repos/asf/ofbiz/trunk ofbiz release13.07: $ svn co http://svn. ...

  2. .net 访问远程的MSSQL报System.AccessViolationException错误的解决方法

    访问远程的数据库时 报错,本地数据库正常 netsh winsock reset   --运行此命令,解决. netsh winsock reset命令,作用是重置 Winsock 目录.如果一台机器 ...

  3. posix和system v有什么区别/?

    posix和system v有什么区别/?现在在应用时应用那一标准浮云484212 | 浏览 243 次 2014-11-06 10:362014-11-19 22:36 最佳答案们是有关信号量的两组 ...

  4. Java连接MySQl数据库实现代码

    1. 获取数据库连接和查询代码 package connectionmysql; import java.sql.Connection; import java.sql.DriverManager; ...

  5. 日均百万 PV 的站点如何做性能监测?试试「3M口罩」!

    对很多开发者而言,如果网站的日流量达到百万级别,峰值 PV 也突破了 3 万,这样的站点在线下测试的时候总是让人心力交瘁.... 生产环境下的性能监测问题更是尤其让人头疼! 开发同学在想,运维人员也在 ...

  6. 对CURL的一些研究

    http://www.kuqin.com/article/23candcplusplus/586014.html 前两天看到有人求客户端socket 发HTTP包的代码,受flw版主启发找了一些per ...

  7. POJ 1961 Period(KMP)

    http://poj.org/problem?id=1961 题意 :给你一个字符串,让你输出到第几个字符时,循环结的个数. 思路 :这个题和2409差不多,稍微修改一下,加一个循环就行了,用的也是K ...

  8. SQL SERVER查看当前连接情况

    使用超级管理员账户登录,并执行以下命令: SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FRO ...

  9. php陷阱:字符串和数字比较

    PHP中的比较运算符有点诡异,很容易出错,现列出比较规则: 1.当两个字符进行大小比较时,是比较着这两个字符的ASCII码大小——这条很容易理解. 2.当两个字符串进行大小比较时,是从第一个字符开始, ...

  10. ruby使用IO类读写文件

    path="test.txt" port=open(path) begin port.each_line{|line| p line.to_s } ensure port.clos ...