Я решаю проблемы в HackerEarth, и я не могу понять, почему моя программа работает правильно в моей командной строке и дает правильный результат, но при запуске на их редакторе кода это дает исключение java.util.NoSuchElementException
.java.util.NoSuchElementException at java.util.Scanner
Я искал, но не смог его решить.
import java.util.Scanner;
public class TestClass {
public static int[][] arr = null;
public static int[][] dp = null;
public static void main(String[] args) {
int N, M, T;
int min;
int count = 0;
Scanner scan = new Scanner(System.in);
N = scan.nextInt();
M = scan.nextInt();
arr = new int[N][M];
dp = new int[N + 1][M + 1];
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M; ++j) {
arr[i][j] = scan.nextInt(); //line 26
}
}
for (int i = 0; i < M + 1; ++i)
dp[0][i] = 0;
for (int i = 0; i < N + 1; ++i)
dp[i][0] = 0;
for (int i = 1; i < N + 1; ++i) {
for (int j = 1; j < M + 1; ++j) {
if (arr[i - 1][j - 1] == 0) {
min = Math.min(dp[i - 1][j], Math.min(dp[i]
[j - 1], dp[i - 1][j - 1]));
dp[i][j] = min + 1;
} else
dp[i][j] = 0;
}
}
count = 0;
for (int i = 1; i < N + 1; ++i) {
for (int j = 1; j < M + 1; ++j) {
if (dp[i][j] != 0)
count += dp[i][j];
}
}
System.out.println("" + count);
}//main
}//class
Исключение:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at TestClass.main(editor_trsource_1429355115_85417.java:26)
Thanks.Problem с I ожидал 4 разных входа как 0 1 0 0 с пространством, разделяющим их, но они ожидают 4 разных ввода как 0100 без каких-либо пробелов. Вы знаете любой способ, как мы можем прочитать это внутри массива как 4 разных входа? – Cyclotron3x3
вы можете прочитать как String, а затем использовать метод charAt для String для получения отдельных чисел. – SMA
Да, я ... Спасибо. – Cyclotron3x3