Java 代码可以在intellij中工作,但不能在hackerrank ide中工作

Java 代码可以在intellij中工作,但不能在hackerrank ide中工作,java,runtime-error,Java,Runtime Error,我正在做一个关于hackerrank的问题: 我用intellij编写了这个解决方案,它在那里给了我正确的输出,但是当我把它复制到hackerrank ide时,它给了我一个错误 这就是我所说的代码: import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util

我正在做一个关于hackerrank的问题:

我用intellij编写了这个解决方案,它在那里给了我正确的输出,但是当我把它复制到hackerrank ide时,它给了我一个错误

这就是我所说的代码:

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;

class Results {

    /*
     * Complete the 'countSwaps' function below.
     *
     * The function accepts INTEGER_ARRAY a as parameter.
     */

    public static void countSwaps(List<Integer> a) {
        int count = 0;
        boolean flag = false;
        while (!flag) {
            flag = true;
            for (int i = 0; i < a.size() - 1; i++) {
                if (a.get(i) > a.get(i + 1)) {
                    int temp = a.get(i);
                    a.set(i, a.get(i + 1));
                    a.set(i + 1, temp);
                    flag = false;
                    count++;
                }
            }
        }

        System.out.println(String.format(
                "Array is sorted in %d swaps.%n" +
                        "First Element: %d%n" +
                        "Last Element: %d%n",
                count,
                a.get(0),
                a.get(a.size() - 1)));
    }

    public static class Solution {
        public static void main(String[] args) throws IOException {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

            int n = Integer.parseInt(bufferedReader.readLine().trim());

            List<Integer> a = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
                    .map(Integer::parseInt)
                    .collect(toList());

            Results.countSwaps(a);

            bufferedReader.close();
        }
    }
}
import java.io.*;
导入java.math.*;
导入java.security.*;
导入java.text.*;
导入java.util.*;
导入java.util.concurrent.*;
导入java.util.function.*;
导入java.util.regex.*;
导入java.util.stream.*;
导入静态java.util.stream.Collectors.joining;
导入静态java.util.stream.Collectors.toList;
课堂成绩{
/*
*完成下面的“countSwaps”功能。
*
*函数接受整数数组作为参数。
*/
公共静态交换(列表a){
整数计数=0;
布尔标志=假;
while(!flag){
flag=true;
对于(int i=0;ia.get(i+1)){
int temp=a.get(i);
a、 set(i,a.get(i+1));
a、 设置(i+1,温度);
flag=false;
计数++;
}
}
}
System.out.println(String.format(
“数组按%d次交换排序。%n”+
“第一个元素:%d%n”+
“最后一个元素:%d%n”,
计数
a、 得到(0),
a、 获取(a.size()-1));
}
公共静态类解决方案{
公共静态void main(字符串[]args)引发IOException{
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(System.in));
int n=Integer.parseInt(bufferedReader.readLine().trim());
列表a=Stream.of(bufferedReader.readLine().replaceAll(“\\s+$”,“”)。拆分(“”)
.map(整数::parseInt)
.collect(toList());
结果:countSwaps(a);
bufferedReader.close();
}
}
}
这是错误:无法找到或加载主类解决方案


你知道我为什么会在这里出错吗?如何修复它。

您已将解决方案类放在结果类中。HackerRank希望您将解决方案类作为自己的类,如下所示:

import java.io.*;
导入java.math.*;
导入java.security.*;
导入java.text.*;
导入java.util.*;
导入java.util.concurrent.*;
导入java.util.function.*;
导入java.util.regex.*;
导入java.util.stream.*;
导入静态java.util.stream.Collectors.joining;
导入静态java.util.stream.Collectors.toList;
课堂成绩{
/*
*完成下面的“countSwaps”功能。
*
*函数接受整数数组作为参数。
*/
公共静态交换(列表a){
整数计数=0;
布尔标志=假;
while(!flag){
flag=true;
对于(int i=0;ia.get(i+1)){
int temp=a.get(i);
a、 set(i,a.get(i+1));
a、 设置(i+1,温度);
flag=false;
计数++;
}
}
}
System.out.println(String.format(
“数组按%d次交换排序。%n”+
“第一个元素:%d%n”+
“最后一个元素:%d%n”,
计数
a、 得到(0),
a、 获取(a.size()-1));
}
}
类解决方案{
公共静态void main(字符串[]args)引发IOException{
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(System.in));
int n=Integer.parseInt(bufferedReader.readLine().trim());
列表a=Stream.of(bufferedReader.readLine().replaceAll(“\\s+$”,“”)。拆分(“”)
.map(整数::parseInt)
.collect(toList());
结果:countSwaps(a);
bufferedReader.close();
}
}

请检查代码语法并阅读IDE给出的错误。它确实明确地告诉您,
错误:无法找到或加载主类解决方案
,只要快速检查一下自动缩进就会发现问题。

在线编码竞赛平台通常要求您遵守某些提交规则

见:

import java.io.*;
导入java.math.*;
导入java.security.*;
导入java.text.*;
导入java.util.*;
导入java.util.concurrent.*;
导入java.util.function.*;
导入java.util.regex.*;
导入java.util.stream.*;
导入静态java.util.stream.Collectors.joining;
导入静态java.util.stream.Collectors.toList;
公共类解决方案
{
/*
*完成下面的“countSwaps”功能。
*
*函数接受整数数组作为参数。
*/
公共静态void countswap(列表a)
{
整数计数=0;
布尔标志=假;
while(!flag)
{
flag=true;
对于(inti=0;ia.get(i+1))
{
int temp=a.get(i);
a、 set(i,a.get(i+1));
a、 设置(i+1,温度);
flag=false;
计数++;
}
}
}
System.out.println(String.format)(“数组按%d次交换排序。%n”+
“第一个元素:%d%n”+
“最后一个元素:%d%n”,
计数
a、 get(0),a.get(a.size()-1));
}
公共静态void main(字符串[]args)引发IOException
{
缓冲读取器缓冲读取器=
新的BufferedReader(新的InputStreamReader(System.in));
intn=Integer.parseInt(bufferedReader.readLine().trim());
列表a=
Stream.of(bufferedReader.readLine().replaceAll(“\\s+$”,
).split(“”)。
map(Integer::parseInt).collect(toList());