转载声明:原文转自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. MVC-各种传值方式

    [转自]:QLeelulu示例一:ViewData传值.HomeController.cs Co de: public ActionResult Index(){     ViewData[" ...

  2. WPF中的一些常用类型转换

    1.string和Color的转换: //string转Color (Color)ColorConverter.ConvertFromString((string)str); //Color转stri ...

  3. Visual Studio 2010 旗舰版安装图解

    微软发布了最新的 Visual Studio 2010 软件开发编程平台及 .Net Framework 4 框架.这次 VisualStudio 2010 包括 Professional 专业版.P ...

  4. 【JPA】表达条件查询的关键字

    1.通过解析方法名创建查询 框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find.findBy.read.readBy.get.getBy,然后对剩下部分进行解析.并且如果方法的最后一 ...

  5. WPF获取控件的句柄

    在WinForm中,获得句柄是一件很容易的事情,This.Handle或者Control.Handle就可以,最近在WPF的开发中发现找不到这个属性,一番查找资料后找到了两种方式. 1,使用Windo ...

  6. 几种C#实现播放声音的方法

    在这里介绍使用C#实现播放声音的几种方法,都是利用组件等方法来实现的,有兴趣的话可以看下. 第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroS ...

  7. 常用DOS命令参数详解

    一.DIR命令的格式: dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h] (1)dir /a:attrib 缺省包含所 ...

  8. javascript技巧合集

    转http://www.blogjava.net/zhaochengming/archive/2010/04/09/317837.html http://www.cnblogs.com/fxgachi ...

  9. pmtest1.asm pmtest2.asm pmtest5.asm 这几个比较重要.

    读代码时注意Label后面的文字:desc表示是描述符,seg表示是段 pmtest1.asm 主要讲进入保护模式 http://www.cnblogs.com/wanghj-dz/archive/2 ...

  10. cs ip 通过jmp转移命令间接赋值。无法直接对其赋值。

    jmp 寄存器 命令 对IP间接赋值.