Это постановка проблемы от гиков для гиков (ссылка: https://practice.geeksforgeeks.org/problems/kadanes-algorithm/0)
Мой код работает нормально в соответствии с опцией Compile & test. Но когда я пытаюсь отправить, выдает ошибку об ошибке для нескольких тестовых случаев.
Может ли кто-нибудь помочь мне с этим?
КОД:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Kadane
{
public static void main(String[]args) throws IOException,NumberFormatException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the number of test cases");
int T = Integer.parseInt(br.readLine());
for(int t=0 ; t<T ; t++)
{
int N,a=0;
int sum1=0,maxsum=-2147483648,kadanesum=-2147483648;
System.out.println("Enter the size of array : ");
N = Integer.parseInt(br.readLine());
int arr[] = new int[N];
System.out.println("Enter the array elements separated by space");
String S = new String(br.readLine());
String elem[] = S.split(" ");
for(String e:elem)
{
arr[a] = Integer.parseInt(e);
a++;
}
for(int i=0 ; i<N ; i++)
{
for(int j=i ; j<N ; j++)
{
sum1 = sum1 + arr[j];
if(maxsum<sum1)
{
maxsum=sum1;
}
}
if(maxsum>kadanesum)
{
kadanesum=maxsum;
}
sum1=0;
maxsum=-2147483648;
}
System.out.println("\tKadane Sum = " + kadanesum);
}
}
}
Мой код ссылки: https://ide.geeksforgeeks.org/tXNHh28A0D
Мой вклад:
5 (количество тестов)
3 (размер массива)
1 2 3 (элементы массива)
5
1 2 3 -2 5
10
2 9 3 -10 -20 34 28 -50 30 -1
7
4 5 -10 -50 3 9 8
8
8 9 8 -25 25 1 2
Мой вывод:
Введите количество тестов
Введите размер массива:
Введите элементы массива через пробел
Кадане Сум = 6
Введите размер массива:
Введите элементы массива через пробел
Кадане Сум = 9
Введите размер массива:
Введите элементы массива через пробел
Кадане Сум = 62
Введите размер массива:
Введите элементы массива через пробел
Кадане Сум = 20
Введите размер массива:
Введите элементы массива через пробел
Кадане Сум = 28
При отправке моего кода я получаю следующее сообщение об ошибке:
Неправильный ответ. !!!Неправильный ответ
Возможно, ваш код не работает правильно для нескольких тестовых случаев (TC).
Первый тестовый случай, когда ваш код не удался:
Ввод: (согласно веб-сайту)
3
1 2 3
Правильный вывод:
6
Я использовал этот же вход в моих входных тестовых примерах (контрольный пример 1), и результат такой же, как и ожидалось.
Может ли кто-нибудь помочь мне оптимизировать код с помощью StringBuffer?