Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного подмассива. Пример массива, например {3, -4, 2, -3, -1, 7, -5}, должен возвращать: {-4, 2, -3, -1}, поскольку его сумма равна -6, и существует не подмассив в выборочном массиве с суммой меньшей, чем -6. В Интернете можно найти несколько руководств по этой проблеме, например https://www.geeksforgeeks.org/smallest- ... -subarray/#, но эти решения возвращают сумму, а не весь подмассив, созданный из исходного массива. Я пытаюсь узнать, как вернуть подмассив.
Это код, который у меня есть:
The smallest sum contiguous subarray of the array is [-4, 2, -3, -1] with a sum of -6
The smallest sum contiguous subarray of the array is [-1, -6, -1, 4] with a sum of -7
The smallest sum contiguous subarray of the array is [-8, 3, -7, 2] with a sum of -13
Я придумал, как найти непрерывный подмассив с наименьшей суммой, и могу правильно вернуть сумму, но возвращаемые подмассивы неверны. Подмассив верен для массива1, но неверен для массива2 и массива3 (массив2 должен читать [-1, -6], а массив3 должен читать [-8, 3, -7, 2, -3]). Мне трудно понять, почему это работает для массива1, но не для остальных. Любая помощь или совет очень ценятся.
Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного подмассива. Пример массива, например {3, -4, 2, -3, -1, 7, -5}, должен возвращать: {-4, 2, -3, -1}, поскольку его сумма равна -6, и существует не подмассив в выборочном массиве с суммой меньшей, чем -6. В Интернете можно найти несколько руководств по этой проблеме, например https://www.geeksforgeeks.org/smallest-sum-contigious-subarray/#, но эти решения возвращают сумму, а не весь подмассив, созданный из исходного массива. Я пытаюсь узнать, как вернуть подмассив. Это код, который у меня есть: [code]import java.util.ArrayList;
public class Problem1 { public static void main(String[] args) { int array1[] = { 3, -4, 2, -3, -1, 7, -5 }; int size1 = array1.length;
int array2[] = { 1, 2, -1, 3, -6, -1, 4, 5 }; int size2 = array2.length;
int array3[] = { 10, -8, 3, -7, 2, -3 }; int size3 = array3.length;
static String smallestSum(int array[], int size) { int smallEnding = Integer.MAX_VALUE; int smallCurrent = Integer.MAX_VALUE; ArrayList subArray = new ArrayList();
return ("The smallest sum contiguous subarray of the array is " + subArray.toString() + " with a sum of " + Integer.toString(smallCurrent)); } } [/code] Вот что я получаю: [code]The smallest sum contiguous subarray of the array is [-4, 2, -3, -1] with a sum of -6 The smallest sum contiguous subarray of the array is [-1, -6, -1, 4] with a sum of -7 The smallest sum contiguous subarray of the array is [-8, 3, -7, 2] with a sum of -13 [/code] Я придумал, как найти непрерывный подмассив с наименьшей суммой, и могу правильно вернуть сумму, но возвращаемые подмассивы неверны. Подмассив верен для массива1, но неверен для массива2 и массива3 (массив2 должен читать [-1, -6], а массив3 должен читать [-8, 3, -7, 2, -3]). Мне трудно понять, почему это работает для массива1, но не для остальных. Любая помощь или совет очень ценятся.
Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного...
Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного...
Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного...
Я работаю над довольно простой и популярной задачей непрерывного подмассива наименьшей суммы в Java. Задача состоит в том, чтобы создать класс и написать в нем метод, который принимает целочисленный массив и возвращает наименьшую сумму смежного...