Я решал упражнение из Introduction to Algorithms — CLRS и столкнулся с решением максимального непрерывного подмассива за линейное время (Q 4.1-5). Пожалуйста, посмотрите на мое решение ниже. Я искал онлайн судей для этого упражнения, но не нашел. После ее решения, когда я искал решения, я нашел алгоритм Кадане, который кажется отличным от моей реализации, и это решение дает правильный результат, когда все числа отрицательные.
public static int linearMaxSolve(int[] arr) {
int max = Integer.MIN_VALUE;
int sum = 0;
for (int i : arr) {
sum += i;
if (i > sum) {
sum = i;
}
if (sum > max) {
max = sum;
}
}
return max;
}
Есть ли способ проверить правильность этого алгоритма, кроме подачи в программу ручных тестовых случаев?