Я пытаюсь решить проблему # 299 - Поезд Swapping на сайте UVa Online судья. Код, который у меня работает, отлично подходит для независимых тестовых случаев. Однако, когда я использую входной выборки они предоставляют, моя программа пропускает один из тестов, последний из которых более конкретно:Ошибка Java Judge Solution Solution
Вот мой код:
import java.util.Scanner;
public class Tester {
void problem(){
Scanner imput = new Scanner(System.in);
int numT =imput.nextInt();
int numL, aux, swaps=0;
int [] train = new int [50];
for (int i =0; i<numT; i++) {
numL = imput.nextInt();
for (int m =0; m< numL; m++) {
train[m]=imput.nextInt();
}
for (int j=0; j<numL; j++) {
if (train[j]>train[j+1]) {
for (int k =j; k<numL-1;k++) {
aux = train[k];
train[k]=train[k+1];
train[k+1]=aux;
swaps++;
}
}
}
System.out.println("Optimal train swapping takes "+swaps+" swaps.");
swaps = 0;
}
}
}
Пример ввода:
3
3
1 3 2
4
4 3 2 1
2
2 1
Результат:
Optimal train swapping takes 1 swaps.
Optimal train swapping takes 6 swaps.
Optimal train swapping takes 1 swaps.
мой код печатает до второго раствора, то для S ome причина останавливается. Я попытался отладить его и проверить, что происходит шаг за шагом, но это привело меня к точке мигрени. Любое понимание высоко ценится.
... Чтобы быть более точным он останавливается на втором для цикла в третий раз вокруг, не принимая ничего в массив ... и я не знаю, почему!
Еще одна вещь, которую я выяснил, заключается в том, что для решения этой проблемы количество свопов для случая середины равно 6, поэтому сортировка пузырьков здесь не будет полезной, поскольку она делает более 10 своп, что дает неправильный вывод, это это отдельный вопрос к оригиналу, который я представил. Я все еще не понимаю, почему он останавливается в третий раз вокруг цикла, где я назначаю значения массиву в третий раз.
Попробуйте с моим редактируемого кода, он проверяется. – Masudul
спасибо за вашу помощь, он работает, однако нужен ответ, чтобы быть с моим простым кодом, вы думаете, что можете понять, почему он останавливается, где он останавливается? –