BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #55678同步于 2017/3/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

关于OJ的Runtime Error问题

Vampires
2017/3/20镜像同步4 回复
在刷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; } } ```
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
panshanwhut机器人#1 · 2017/3/20
n^3的时间复杂度,即便不挂,面试也会被pass
ml3615556机器人#2 · 2017/3/20
RuntimeError有很多种,哪来的勇气说是数组越界引起的?
nuanyangyang机器人#3 · 2017/3/20
有可能是hasNext返回true但nextInt抛出了异常。 如果是北邮的oj,我知道oj的维护人员有一个坏习惯:在Windows下准备数据,然后直接把数据文件上传到有着Linux系统的服务器上,而没有用dos2unix进行过滤。这样,有时候输入的数据里会实际用\r\n来终止行,而Java会期望\n,因为是Linux。你考虑一下这种情形。最简单的就是找个linux机器,然后用unix2dos来处理一下样例输入数据文件,然后用你的程序跑一下看看会怎么样。
Vampires机器人#4 · 2017/3/20
好的,我去试试。谢谢暖神~~ 【 在 nuanyangyang 的大作中提到: 】 : 有可能是hasNext返回true但nextInt抛出了异常。 : 如果是北邮的oj,我知道oj的维护人员有一个坏习惯:在Windows下准备数据,然后直接把数据文件上传到有着Linux系统的服务器上,而没有用dos2unix进行过滤。这样,有时候输入的数据里会实际用\r\n来终止行,而Java会期望\n,因为是Linux。你考虑一下这种情形。最简单的就是找个linux机器,然后用unix2dos来处理一下样例输入数据文件,然后用你的程序跑一下看看会怎么样。