Упражнения на Java: найдите непрерывный подмассив с наибольшей суммой из заданного массива целых чисел
Java Basic: упражнение-122 с решением
Напишите программу на Java, чтобы найти непрерывный подмассив с наибольшей суммой из заданного массива целых чисел.
Примечание. В компьютерных науках проблема максимального подмассива - это задача поиска смежного подмассива в одномерном массиве чисел с наибольшей суммой. Например, для последовательности значений -2, 1, -3, 4, -1, 2, 1, -5, 4; смежный подмассив с наибольшей суммой равен 4, -1, 2, 1, с суммой 6.
Подмассив должен содержать как минимум одно целое число.
Иллюстрированная презентация:
Пример решения:
Java-код:
public class Main {
public static void main(String[] args) {
int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
System.out.print(max_SubArray(nums));
}
public static int max_SubArray(int[] nums) {
if (nums.length < 1) {
return 0;
}
int max = nums[0];
int max_Begin = 0;
int max_End = 0;
int begin = 0;
int end = 0;
int sum = 0;
while (end < nums.length) {
sum += nums[end];
if (sum < 0) {
sum = 0;
begin = end + 1;
} else {
if (sum > max) {
max = sum;
max_Begin = begin;
max_End = end;
}
}
end++;
}
return max;
}
}
Пример вывода:
6
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы обратить заданный связанный список.
Далее: Напишите программу на Java, чтобы найти подмассив с наименьшей суммой из заданного массива целых чисел.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования