Исключение NoSuchElement при реализации класса сканера
Главное иметь в виду, что сложность времени и пространства должна быть минимальной. Таким образом, чтобы достичь этого, я объединил два цикла for в один, а затем ошибку java.util.NoSuchElementException
произошло.
Ошибка в следующей строке: a = in.nextInt();
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int M = in.nextInt();
long m[] = new long[N];
long big=0;
int a = in.nextInt();
int b = in.nextInt();
int k = in.nextInt();
int i;
int j;
for( i=0,j=a-1 ; i<M && j<=N ; j++)
{
m[j] = m[j] + k;
big = Math.max(big, m[j]);
if(j==b-1)
{
a = in.nextInt();
b = in.nextInt();
k = in.nextInt();
j = a-1;
i=i+1;
}
}
System.out.print(big);
}
}
Средний код, который работал до этого, был следующим:
for(int i=0;i<M;i++)
{
int a = in.nextInt();
int b = in.nextInt();
int k = in.nextInt();
for(int j=a-1;j<=b-1;j++)
{
m[j] = m[j] + k;
if(m[j]>big)
{
big = m[j];
}
}
}
2 ответа
Мне кажется, что основная причина в тесте цикла:
for( i=0,j=a-1 ; i<M && j<=N ; j++)
Действительно, массив объявлен как:
long m[] = new long[N];
поэтому тест должен быть:
for( i=0,j=a-1 ; i<M && j<N ; j++)
Какова гарантия того, что m[a-1] существует, a является динамическим вводом, и вы не проверяете, является ли он>=0, и