Современная Java считается довольно быстрой, если вы пишете оптимизированный код, но она все еще медленнее, чем языки, которые взаимодействуют на еще более низком уровне и имеют опережающий компилятор. В любом случае, у этой темы есть очень хороший подробный ответ: Действительно ли Java медленна? .
Однако ваш код Java все еще можно оптимизировать, используя BufferedReader
вместо прямого использования Scanner
. Scanner
фактически принимает входной поток и затем анализирует в соответствии с типом данных, который мы пытаемся получить, но BufferedReader
просто дает необработанный ввод и не выполняет никаких операций. Следовательно, если вы используете его и анализируете необработанную строку ввода отдельно, это будет намного лучше для вашего времени выполнения кода. Мне удалось получить 0,61 с немного измененной версией вашего кода, используя BufferedReader
:
import java.util.*;
import java.io.*;
class gfg
{
public static void main(String args []) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw=new PrintWriter(System.out, true);
int t=Integer.parseInt(br.readLine());
while(t-->0)
{
int N = Integer.parseInt(br.readLine());
String str[]=br.readLine().split(" ");
int count = 0;
for(int j = 0; j<N; j++){
int in = Integer.parseInt(str[j]);
count =count^in;
}
System.out.println(count);
}
}
}
Я думаю, что с помощью еще нескольких оптимизаций вы можете приблизить время, почти сравнимое с 0,3 с.