Java Google FooBar代码在IDE中运行,但未通过所有测试用例

Java Google FooBar代码在IDE中运行,但未通过所有测试用例,java,Java,我想解决的问题是‘嘿!我已经这么做了。” 问题陈述是,但这不是我真正的问题,因为我已经在IDE上创建了一个适合我的解决方案 当我在IDE中创建一个示例main来运行该文件时,我能够为这两个测试用例返回正确的值。然而,当我在foobar中验证它时,我没有通过所有测试用例,包括两个已知的用例 我试着只返回1,因为这是第二个测试用例的答案,可以通过三个测试用例。但是,当我运行代码时,却返回1;在第一行(使我所有的代码都无用),我仍然没有通过所有的测试用例。这意味着,出于某种原因,即使它没有进入我的代码

我想解决的问题是‘嘿!我已经这么做了。” 问题陈述是,但这不是我真正的问题,因为我已经在IDE上创建了一个适合我的解决方案

当我在IDE中创建一个示例main来运行该文件时,我能够为这两个测试用例返回正确的值。然而,当我在foobar中验证它时,我没有通过所有测试用例,包括两个已知的用例

我试着只返回1,因为这是第二个测试用例的答案,可以通过三个测试用例。但是,当我运行代码时,却返回1;在第一行(使我所有的代码都无用),我仍然没有通过所有的测试用例。这意味着,出于某种原因,即使它没有进入我的代码,我也无法通过所有的测试用例。然而,谷歌没有告诉我任何关于编译错误的信息——它只是说我没有通过测试用例

代码如下:

public class Solution {
    public static int solution(String n, int b) {
        int tick = 0;
        int[] arr = new int[1000000000];
        int ans = 0;
        while (true) {
            tick++;
            if (arr[Integer.parseInt(n)] == 0) {
                arr[Integer.parseInt(n)] = tick;
            } else {
                ans = tick - arr[Integer.parseInt(n)];
                //System.out.println(ans);
                return ans;
            }
            char[] ar;
            ar = n.toCharArray();
            Arrays.sort(ar);
            String i = String.valueOf(ar);
            String j = "";
            for (int a = (ar.length - 1); a >= 0; a--) {
                j += String.valueOf(ar[a]);
            }
            //System.out.println(i + " " + j);

            int x = Integer.valueOf(j);
            int y = Integer.valueOf(i);

            String a1 = Integer.toString(x);
            String b1 = Integer.toString(y);
            int p = 1;
            int xx = 0;
            int yy = 0;

            p = 0;
            for (int ii = a1.length() - 1; ii >= 0; ii--) {
                xx += Integer.parseInt(Character.toString(a1.charAt(ii))) * Math.pow(b, p);
                p++;
            }

            p = 0;
            for (int ii = b1.length() - 1; ii >= 0; ii--) {
                yy += Integer.parseInt(Character.toString(b1.charAt(ii))) * Math.pow(b, p);
                p++;
            }


            String zz = String.valueOf(xx - yy);

            String newn = Integer.toString(Integer.parseInt(zz), b);

            for (int ii = 0; ii < n.length() - newn.length(); ii++)
                newn = "0" + newn;
            n = newn;
            //System.out.println(n);
            //f = true;
        }

    }
}
公共类解决方案{
公共静态int解决方案(字符串n,int b){
int tick=0;
int[]arr=新int[100000000];
int ans=0;
while(true){
tick++;
如果(arr[Integer.parseInt(n)]==0){
arr[Integer.parseInt(n)]=勾号;
}否则{
ans=tick-arr[Integer.parseInt(n)];
//系统输出打印LN(ans);
返回ans;
}
char[]ar;
ar=n.toCharArray();
数组。排序(ar);
字符串i=字符串的值(ar);
字符串j=“”;
对于(int a=(ar.length-1);a>=0;a--){
j+=String.valueOf(ar[a]);
}
//系统输出打印项次(i+“”+j);
int x=整数。值(j);
int y=整数。值(i);
字符串a1=整数。toString(x);
字符串b1=整数。toString(y);
int p=1;
int xx=0;
int-yy=0;
p=0;
对于(int ii=a1.length()-1;ii>=0;ii--){
xx+=Integer.parseInt(Character.toString(a1.charAt(ii))*Math.pow(b,p);
p++;
}
p=0;
对于(int ii=b1.length()-1;ii>=0;ii--){
yy+=Integer.parseInt(Character.toString(b1.charAt(ii))*Math.pow(b,p);
p++;
}
字符串zz=字符串的值(xx-yy);
字符串newn=Integer.toString(Integer.parseInt(zz),b);
对于(int ii=0;ii
我找到了答案,答案有两个方面——首先,我得到了错误,因为尽管foobar不需要通配符导入,但它们确实需要特定的导入(在本例中为java.util.array)。然而,当我这么做的时候,它仍然是低效的,所以我把它改成了一个简单的HashMap解决方案,这样我就能够通过所有的测试用例