返回信息流在刷OJ的题,然后自己在eclipse跑的时候都没问题,但是提交到OJ就显示runtime error。检查了数组越界问题,感觉没有越界啊...题目是求数组内最小子列和。
```
package com.jdOJ;
import java.util.Scanner;
public class t1077 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int len = in.nextInt();
long[] arr = new long[len];
for(int n=0;n<len;n++){
arr[n] = in.nextInt();
}
long seqSum = arr[0] ;
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length;j++){
System.out.println("i:"+i+",j:"+j);
long x = getSum(arr,i,j);
if(seqSum <= x )
seqSum = x;
}
}
System.out.println(seqSum);
}
in.close();
}
private static long getSum(long[] arr,int stIndex,int endIndex){
int sum = 0;
for(int i =stIndex;i<=endIndex;i++)
sum += arr[i];
return sum;
}
}
```
这是一条镜像帖。来源:北邮人论坛 / java / #55678同步于 2017/3/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于OJ的Runtime Error问题
Vampires
2017/3/20镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
有可能是hasNext返回true但nextInt抛出了异常。
如果是北邮的oj,我知道oj的维护人员有一个坏习惯:在Windows下准备数据,然后直接把数据文件上传到有着Linux系统的服务器上,而没有用dos2unix进行过滤。这样,有时候输入的数据里会实际用\r\n来终止行,而Java会期望\n,因为是Linux。你考虑一下这种情形。最简单的就是找个linux机器,然后用unix2dos来处理一下样例输入数据文件,然后用你的程序跑一下看看会怎么样。
好的,我去试试。谢谢暖神~~
【 在 nuanyangyang 的大作中提到: 】
: 有可能是hasNext返回true但nextInt抛出了异常。
: 如果是北邮的oj,我知道oj的维护人员有一个坏习惯:在Windows下准备数据,然后直接把数据文件上传到有着Linux系统的服务器上,而没有用dos2unix进行过滤。这样,有时候输入的数据里会实际用\r\n来终止行,而Java会期望\n,因为是Linux。你考虑一下这种情形。最简单的就是找个linux机器,然后用unix2dos来处理一下样例输入数据文件,然后用你的程序跑一下看看会怎么样。