2012-02-19 75 views
1

我正在为我的Java解决方案收到UVa Online Judge问题的运行时错误。我已完成Problem 100,它在我的最后工作。任何想法可能导致这个问题?无法重现UVa Online Judge给我的运行时错误

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); 
     } 
    } 

} 
+0

你得到什么运行时错误?您的JRE/JDK版本可能会有所不同吗?你的JVM可以不同吗? – Jeffrey 2012-02-19 23:48:13

+2

@Tyler Crompton:*(不是你的问题的答案,因此评论)* ...没有理由再使用Java * Hashtable *而不是* HashMap *。 * Hashtable *是遗留代码(并且因为很长时间),并且性能会比* HashMap *差。如果您确实需要同步映射,那么* Collections.synchronizedMap(...)*或* ConcurrentHashMap *(添加方法,如* putIfAbsent *)就是您要查找的内容。在你的情况下你的代码是单线程的:你只需要一个常规的HashMap。 – TacticalCoder 2012-02-19 23:49:20

+0

@ user988052,谢谢。修正(不是在帖子中,虽然)。 – 2012-02-19 23:56:28

回答

1

您需要重命名

class P100 

public class Main 

当你将代码复制到UVA或它会告诉你的是,类主没有被发现。这是这样的,法官可以运行你的代码(因为java需要知道类名)。我自己有时忘记这么做。

+0

啊,这个修好了。谢谢一堆。现在找出错误答案来自哪里。 *叹息* – 2012-02-19 23:55:37

+0

@TylerCrompton这个问题很容易暴力破解。不要打扰自己的聪明,因为你最终可能会在脚下射击自己;) – 2012-02-19 23:59:03

+0

它在三秒钟后超时,我的实施已经用了0.83秒(未知输入)。我无法想象蛮力。 – 2012-02-20 00:05:15

0

我在使用UVa Online Judge时运行我的Java代码时遇到问题。它可能不是直接关系到你目前的问题,但无论如何看看我的answer,看看它是否有任何帮助。

相关问题