Java Can';t重现UVa Online Judge给我的运行时错误

Java Can';t重现UVa Online Judge给我的运行时错误,java,runtime-error,Java,Runtime Error,我的UVa在线判断问题的Java解决方案出现运行时错误。我已经完成了,它在我这边起作用了。你知道是什么导致了这个问题吗 import java.util.ArrayList; import java.util.Hashtable; import java.util.Scanner; class P100 { public static void main(String args[]) { Hashtable<Integer, Integer> soluti

我的UVa在线判断问题的Java解决方案出现运行时错误。我已经完成了,它在我这边起作用了。你知道是什么导致了这个问题吗

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Scanner;

class P100 {

    public static void main(String args[]) {
        Hashtable<Integer, Integer> solutions = new Hashtable<Integer, Integer>();
        Scanner input = new Scanner(System.in);

        while (input.hasNextInt()) {
            int lowerBound = input.nextInt();
            int upperBound = input.nextInt();

            int longestCount = 0;

            for (int i = lowerBound; i <= upperBound; i++) {
                int n = i;
                int count = 1;

                ArrayList<Integer> sequence = new ArrayList<Integer>();

                while (n != 1) {
                    if (solutions.containsKey(n)) {
                        count += solutions.get(n) - 1;
                        break;
                    }

                    sequence.add(n);

                    count += 1;
                    if (n % 2 == 0) n /= 2;
                    else n = 3 * n + 1;
                }

                for (int j = 0; j < sequence.size(); j++) {
                    solutions.put(sequence.get(j), count - j);
                }

                if (count > longestCount) longestCount = count;

                solutions.put(i, count);
            }

            System.out.printf("%d %d %d\n", lowerBound, upperBound, longestCount);
        }
    }

}
import java.util.ArrayList;
导入java.util.Hashtable;
导入java.util.Scanner;
P100类{
公共静态void main(字符串参数[]){
Hashtable solutions=新的Hashtable();
扫描仪输入=新扫描仪(System.in);
while(input.hasNextInt()){
int lowerBound=input.nextInt();
int upperBound=input.nextInt();
int longestCount=0;
对于(int i=下限;i longestCount)longestCount=计数;
解决方案。放置(i,计数);
}
System.out.printf(“%d%d%d\n”,下限,上限,最长计数);
}
}
}

我在使用UVa Online Judge运行Java代码时遇到问题。这可能与您当前的问题没有直接关系,但请查看我的,看看它是否有帮助。

我在使用UVa Online Judge运行Java代码时遇到问题。它可能与您当前的问题没有直接关系,但无论如何,请查看我的,看看它是否有帮助。

您需要重命名

class P100

当您将代码复制到UVa中时,它会告诉您找不到Main类。这样法官就可以运行您的代码(因为java需要知道类名)。我自己有时会忘记这样做。

您需要重命名

class P100


当您将代码复制到UVa中时,它会告诉您找不到Main类。这样法官就可以运行您的代码(因为java需要知道类名)。我自己有时会忘记这样做。

您会遇到哪些运行时错误?您的JRE/JDK版本会有所不同吗?你的JVM会有所不同吗?@Tyler Crompton:(这不是你问题的答案,因此评论)。。。没有理由再使用Java哈希表而不是哈希映射了。Hashtable是遗留代码(而且已经很长时间了),它的性能比HashMap差。如果您确实需要同步映射,那么您需要的是Collections.synchronizedMap(…)或ConcurrentHashMap(添加putIfAbsent等方法)。在您的情况下,您的代码是单线程的:您只需要一个常规哈希映射。@user988052,谢谢。修正了(虽然不是在帖子中)。我不知道为什么这会被标记为离题。我尽可能多地提供信息。我不知道代码为什么会工作,UVa也不会给我错误消息。你得到了什么运行时错误?您的JRE/JDK版本会有所不同吗?你的JVM会有所不同吗?@Tyler Crompton:(这不是你问题的答案,因此评论)。。。没有理由再使用Java哈希表而不是哈希映射了。Hashtable是遗留代码(而且已经很长时间了),它的性能比HashMap差。如果您确实需要同步映射,那么您需要的是Collections.synchronizedMap(…)或ConcurrentHashMap(添加putIfAbsent等方法)。在您的情况下,您的代码是单线程的:您只需要一个常规哈希映射。@user988052,谢谢。修正了(虽然不是在帖子中)。我不知道为什么这会被标记为离题。我尽可能多地提供信息。我不知道代码为什么会工作,UVa也不会给我错误信息。啊,这解决了它。非常感谢。现在来找出错误答案的来源。sigh@TylerCrompton这个问题很容易用暴力解决。不要自寻烦恼地变得聪明,因为你最终可能会射中自己的脚;)它在三秒钟后超时,我的实现已经花费了0.83秒(输入未知)。我无法想象蛮力会强迫它。@ TyrrRulpMton我在C++和java中都写了一个聪明的蛮力实现,没有一个是超时的。我给我的学生做了一个简单的练习,一些学生收到了暂停,这就是我为什么这么做的原因。我看不出它为什么会超时,即使是在一些相当大的输入上。啊,这解决了它。非常感谢。现在来找出错误答案的来源。sigh@TylerCrompton这个问题很容易用暴力解决。不要自寻烦恼地变得聪明,因为你最终可能会射中自己的脚;)它在三秒钟后超时,我的实现已经花费了0.83秒(输入未知)。我无法想象蛮力会强迫它。@ TyrrRulpMton我在C++和java中都写了一个聪明的蛮力实现,没有一个是超时的。我给我的学生做了一个简单的练习,一些学生收到了暂停,这就是我为什么这么做的原因。我看不出它为什么会超时,即使是在一些相当大的输入上。