кодесурса

Упражнения на Java: найдите непрерывный подмассив с наибольшей суммой из заданного массива целых чисел

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code